向Twitter发送消息

时间:2017-01-01 22:56:09

标签: python twitter urlencode

我正在尝试在Python中实现一个函数来向我的Twitter帐户发送消息。最常用的功能是:

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

我收到了这条消息: TypeError:POST数据应该是字节,可迭代的字节或文件对象。它不能是str类型。

我见过类似的Q& A,我找不到错误。实际上我从教科书中取出了这个功能并多次修改..

如果有人可以帮助我,我将不胜感激

1 个答案:

答案 0 :(得分: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。这将为您节省许多麻烦:

  

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

您可以通过以下方式安装requests

pip install requests
新年快乐!