我正在嘗試連接到twitter stream api以實時獲取tweets。這段代碼一直工作到5-6之前。突然之間我開始收到401。奇怪的是,這是發生在我的本地機器和位於雲端的生產服務器上,所以我認爲這不是一個網絡相關的問題。Tweepy streaming returns 401需要授權
下面是代碼:
l = StdOutListener()
auth = OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
auth.callback = 'https://localhost' #no effect commented/uncommented
stream = Stream(auth, l)
stream.filter(track=['twitter'], languages=["es"])
到目前爲止,我已經試過如下:
- 生成新的消費重點,消費者的祕密,訪問令牌和訪問令牌的祕密。我使用了以前工作的4種不同的鍵。
- 從apps.twitter.com創建一個全新的應用程序。由於有些用戶報告401「需要授權」與Twitter的應用程序頁面中缺少回調URL字段有關,因此填充了回撥網址。
- 與我的本地和生產服務器上的ntp服務器同步我的時鐘。我的時鐘沒有關閉。
- 我的應用程序具有正確的權限,並在配置後收到訪問令牌和密碼。
這裏是要求:
'Content-Length': '22'
'Content-Type': 'application/x-www-form-urlencoded'
'Authorization': 'OAuth oauth_nonce="161484371946745487981492681844"
oauth_timestamp="1492681844"
oauth_version="1.0"
oauth_signature_method="HMAC-SHA1"
oauth_consumer_key="<oauth_consumer_key>"
oauth_token="<oauth_token>"
oauth_signature="tphQqFWaBvEo2byjZ%2BRqNAM30I0%3D"'
Method: 'POST'
URL: 'https://stream.twitter.com/1.1/statuses/filter.json?delimited=length'
任何幫助,爲什麼我收到一個401未授權「需要授權」的反應可以理解。
編輯:我也嘗試過使用Twython,並從Twitter獲得相同的回覆。
感謝
同樣也是Twython Oauth。你也不需要Oauth2來連接流式端點。 –
您是否使用過時的tweepy版本? –