編輯:更新的代碼。只是不斷收到API錯誤。使用twython中的圖像更新Twitter狀態,不斷獲取API錯誤?
如何使用twython和python 3x從狀態更新到Twitter的URL發佈圖像?我已經閱讀過文檔,但它僅概述了在目錄中打開本地文件,並且我已經看過SO上的一些主題。這是迄今爲止我所得到的錯誤代碼,我不知道如何解決。
我該如何更改才能讓此圖片發佈?這給了我twython.exceptions.TwythonAuthError: Twitter API returned a 401 (Unauthorized), Could not authenticate you.
分鐘擊中twitter.upload
from twython import Twython, TwythonError
import os
try:
from StringIO import StringIO
except ImportError:
from io import StringIO
import urllib
import requests
CONSUMER_KEY = os.environ['CONSUMER_KEY']
CONSUMER_SECRET = os.environ['CONSUMER_SECRET']
ACCESS_TOKEN = os.environ['ACCESS_TOKEN']
ACCESS_TOKEN_SECRET = os.environ['ACCESS_TOKEN_SECRET']
twitter = Twython(CONSUMER_KEY, CONSUMER_SECRET, ACCESS_TOKEN, ACCESS_TOKEN_SECRET)
twitter.verify_credentials()
url = "https://farm2.staticflickr.com/1127/4605090363_4a96e64ff1.jpg"
response = requests.get(url)
photo = requests.get(response.url).content
response = twitter.upload_media(media=photo)
twitter.update_status(status='Checkout this cool image!', media_ids=[response['media_id']])
該解決方案:twitter.post('/statuses/update_with_media', params = {'status': 'Testing New Status'}, files = {'media': StringIO(photo)})
給了我一個TypeError: initial_value must be str or None, not bytes
我不能得到這個工作。我不知道爲什麼。它是一個主要帳戶。我沒有使用「用twitter登錄」,它不是一個web應用程序。只是一個工人機器人。
我很困惑,我搞不清楚我做錯了什麼。它會發布文本狀態良好,我可以搜索,獲取用戶時間表,發送DMS等。我做錯了什麼?
您在這裏缺少一個步驟:https://twython.readthedocs.io/en/stable/usage/advanced_usage.html#posting-a-status-with-an-editing-image - 你沒上傳圖片。你應該一直在訪問'upload_media'的響應'media_id' – karthikr
謝謝!錯過了。現在我得到一個「缺少媒體參數」的錯誤代碼。更新後。我真的希望Twitter會讓我通過一個網址。 : -/ –
好的。現在,只要遇到上傳,我就會收到401認證錯誤。程序我認證的讀取和寫入。它仍然會發布文本更新。奇怪的。不知道。 –