使用tweepy发送Tweet with Variable

时间:2015-04-03 11:56:50

标签: python python-3.x twitter tweepy

所以我试图使用tweepy发送带有变量的推文。确切地说,整个推文是一个变量。

代码段:

tweet = '"If you don\'t think every day is a good day, just try missing one." - Cavett Robert\n\n Tweet URL: https://twitter.com/\nhttp://redd.it/31a5k0'
status = api.update_status(status=tweet)

当我运行时,我收到此错误:

Traceback (most recent call last):
  File "<pyshell#76>", line 1, in <module>
    api.update_status(status=tweet)
  File "C:\Python34\lib\site-packages\tweepy\api.py", line 193, in update_status
    )(post_data=post_data, *args, **kwargs)
  File "C:\Python34\lib\site-packages\tweepy\binder.py", line 239, in _call
    return method.execute()
  File "C:\Python34\lib\site-packages\tweepy\binder.py", line 223, in execute
    raise TweepError(error_msg, resp)
tweepy.error.TweepError: Twitter error response: status code = 403

这不是因为推文太长了。这是139个字符。

当我使用api.update_status(status='Hello')时,它完全正常。只有当我使用它破坏的变量时才会这样。

我还尝试了以下方法:
api.update_status(status='%s' % tweet)
api.update_status(status=('%s' % tweet))
api.update_status(status='{0}'.format(tweet))
api.update_status(status=str(tweet))

现在我是python的新手,所以我不完全理解错误。有人可以告诉我为什么这不起作用以及我如何正确使用它?

2 个答案:

答案 0 :(得分:2)

您收到的错误代码是HTTP 403: Forbidden状态代码,因此您的API调用在某种程度上被Twitter API禁止,而不是tweepy

根据Twitter API docs

  

任何导致重复的尝试都将被阻止,从而导致403错误。因此,用户无法连续两次提交相同的状态。

因此,请尝试更改您的内容,之后可能会有效。

答案 1 :(得分:1)

Twitter包装链接(https://dev.twitter.com/overview/t.co)后,带有两个链接的长推文实际上超过140个字符。每个链接最终为22个字符。