2017-01-01 141 views
0

我想在Python中實現一個函數來發送消息到我的Twitter帳戶。的功能的lasst行是:發送消息到Twitter

params=urllib.parse.urlencode({'status':msg}) 
resp=urllib.request.urlopen('http://twitter.com/statuses/update.json',params) 
resp.read() 

而且我得到這樣的信息: 類型錯誤:POST數據應該是字節,字節可迭代,或一個文件對象。它不能是str型。

我看過類似的Q & A和我找不到錯誤。其實我從一本教科書,並多次修改的功能..

我會很感激,如果有人能幫助我

回答

1

而不是使用urllib寫自己的,使用TwitterAPI庫這樣的事情。對於像Twitter這樣的常見用途,你會發現通常其他人已經開發了一個徹底的實現,使用這些東西可以讓你繼續做自己的代碼,而不必擔心基本的功能,以防萬一,如何說話到Twitter。

你可以做一個簡單的安裝TwitterAPI:

pip install TwitterAPI 

一旦安裝完畢,所有你需要做的是使用以下(改編自TwitterAPI README),並添加自己的代碼來提供的實際內容推文:

from TwitterAPI import TwitterAPI 

consumer_key = <your own key> 
consumer_secret = <your own secret> 
access_token_key = <your own token key> 
access_token_secret = <your own token secret> 

api = TwitterAPI(consumer_key, consumer_secret, access_token_key, access_token_secret) 

msg = 'This is a tweet!' 

request = api.request('statuses/update', {'status': msg}) 
print(request.status_code) 

這個庫的文檔很清楚,並且不僅僅是這個簡單的用例。另外,在未來,如果您從事涉及互聯網請求的其他工作,我強烈建議您查看requests庫而不是urllib。這將節省您很多頭痛的問題:

pip install requests 

新年快樂:

http://docs.python-requests.org/en/master/

您可以通過安裝requests