python-twitter不接受< 140个没有链接的字符

时间:2016-08-27 23:05:28

标签: python-2.7 python-twitter

我正在开发一个使用python-twitter发布更新信息的家庭自动化项目。当我尝试发布一个没有链接的短于140的字符串时,我最终得到TwitterError: Text must be less than or equal to 140 characters.

这是一些描述问题的shell输出:

>>> import twitter
>>> api = twitter.Api(
...     consumer_key=os.environ['TW_API_KEY'],
...     consumer_secret=os.environ['TW_API_SECRET'],
...     access_token_key=os.environ['TW_ACCESS_KEY'],
...     access_token_secret=os.environ['TW_ACCESS_SECRET']
...     )
>>> m = 'The house is now inside the comfort range. Conditions: 28.4 C (83.1 F) at 50.0% humidity. It feels like 84 F.'
>>> len(m)
109
>>> api.PostUpdate(m)
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/home/pi/.virtualenvs/site/local/lib/python2.7/site-packages/twitter/api.py", line 952, in PostUpdate
    raise TwitterError("Text must be less than or equal to 140 characters.")
TwitterError: Text must be less than or equal to 140 characters.

我尝试使用api.PostUpdate(u'{0}'.format(m))将字符串转换为unicode,但不出所料也没有任何帮助。

我假设发生的事情是python-twitter将十进制数字解释为链接,从而减少了我剩下要使用的字符数量,但我不知道api知道这是真的还是不

鉴于我不打算在这些推文中包含链接,有没有办法强制python-twitter忽略小数而不实际删除它们?我宁愿不满足于那种解决方法,因为我有点像能够以十进制表示法报告。我也不愿意和tweepy一起去,但我想如果我需要,我会吞下那颗药丸。

更新:我找到了一种方法,可以使用PostUpdate()中的verify_status_length=False标记来关闭api的长度检查,这样我就可以发送上面的字符串{{ 1}}没有错误。它感觉不是那么优雅,但我会坚持使用它,直到找到更好的解决方案。

0 个答案:

没有答案