如何在python中通过REST API将图像上传到 wordpress.com

How to upload an image to wordpress.com through REST API in python

提问人:sm535 提问时间:11/5/2023 最后编辑:sm535 更新时间:11/12/2023 访问量:27

问:

我正在尝试使用 python 中的 WordPress 的 REST API 将图像上传到我的 wordpress.com 站点(不是在我自己的站点上安装的 WP)。有几个例子说明当 WordPress 网站由用户托管时如何在 SO 上执行此操作。但是当该网站处于 wordpress.com 状态时,我找不到任何示例。我尝试在这里遵循类似问题的示例,并使用了下面的代码。我尝试作为访问 URL,但收到 400(格式错误)响应代码。url = 'https://public-api.wordpress.com/wp/v2/sites/' + domain + '/media'

我生成wp_token

wordpress_credentials = wordpress_user + ':' + wordpress_password
wordpress_token = base64.b64encode(wordpress_credentials.encode())
wp_token = wordpress_token.decode('utf-8')

wordpress_password这是应用密码。

如何调试为什么我会收到 400 响应?感谢任何帮助。

import json, os, subprocess
def wp_upload_image2(domain, wp_token, img_path):
# Form the url
    url = 'https://public-api.wordpress.com/rest/v1.1/sites/' + domain + '/media/new'

# Extract the filename and the extension from the img_path
   extension = img_path[img_path.rfind('.')+1 : len(img_path)]
   print("img_path: ", img_path, "Filename: ", img_path, "extension: ", extension)

# Now form the header
    headers = {
        'Authorization': 'BEARER ' + wp_token,
    }

    try:
        with open(img_path, 'rb') as fp:
            print("Successfully opened file!")
            files = {
               'media[]': fp,
            }
            rs = requests.post(url, headers=headers, files=files)
            print("Response from WP: ", rs)
            return(rs)
        except IOError as e:
            print(f"Couldn't open file ({e})")
wordpress http-post wordpress-rest-api

评论


答: 暂无答案