2017-01-01 136 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