【问题标题】:(Python) Uploading image to twitter (https://api.twitter.com/1.1/statuses/update.json) with requests returning a 400 response(Python) 将图像上传到 twitter (https://api.twitter.com/1.1/statuses/update.json),请求返回 400 响应
【发布时间】:2019-08-17 14:07:12
【问题描述】:
img_url = 'https://upload.twitter.com/1.1/media/upload.json'
auth = OAuth1('',
              '',
              '',
              '')

file = open('test.png', 'rb')
binary_data = file.read()
file.close()

img_data = requests.post(img_url, auth = auth, params = {'media': binary_data})
print(img_data)

返回

Response [400]

请注意,通过https://api.twitter.com/1.1/statuses/update.json 发布正常的文本状态更新工作正常,所以我认为错误的请求不在于授权。我还尝试在 base 64 中对图像进行编码,然后将其传递给也返回相同响应的“media_data”参数。
到目前为止,我一直在关注https://dev.twitter.com/rest/reference/post/media/upload上的官方api参考

【问题讨论】:

标签: python twitter python-requests


【解决方案1】:
upload_media.py
#!/usr/bin/env python
# coding: utf-8

import json
from requests_oauthlib import OAuth1Session

CK = 'XXXXXXXXXXXXXXXXXXXXXX'                             # Consumer Key
CS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Consumer Secret
AT = 'XXXXXXXXX-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' # Access Token
AS = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'         # Accesss Token Secert

url_media = "https://upload.twitter.com/1.1/media/upload.json"
url_text = "https://api.twitter.com/1.1/statuses/update.json"

twitter = OAuth1Session(CK, CS, AT, AS)

files = {"media" : open('image.jpg', 'rb')}
req_media = twitter.post(url_media, files = files)

if req_media.status_code != 200:
    print ("image app fail: %s", req_media.text)
    exit()

media_id = json.loads(req_media.text)['media_id']
print ("Media ID: %d" % media_id)

params = {'status': 'image test', "media_ids": [media_id]}
req_media = twitter.post(url_text, params = params)

if req_media.status_code != 200:
    print ("text app fail: %s", req_text.text)
    exit()

print ("OK")

你可以这样做!

【讨论】:

  • 我不能做第一部分,我收到错误“缺少媒体参数”
猜你喜欢
  • 2014-07-04
  • 2020-11-22
  • 2021-07-10
  • 1970-01-01
  • 2018-03-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-17
相关资源
最近更新 更多