我想在我自己(不是其他人的)推特账户上以编程方式发布图像。为此,我尝试使用tweepy库 - 但他们有一个名为api.update_with_media('image')的方法,它不起作用。
看来twitter已弃用此方法: ...状态/ update_with_media (抱歉截断的html - >我是新来的,所以他们不会让我发布太多的链接)
Twitter指示我们使用此代码: ...公共/上载的媒体
基本上,这是一个两步法。 步骤1)上传媒体并在json中获取一些ID 步骤2)使用此ID更新状态
这两个步骤都需要身份验证。问题是twitter库(可以在这里找到twitter-libraries)实际上并不支持这种新方法。他们在文档中都有一个简单的。
似乎这个问题可以修复它,但是文档没有得到更新(我实际上并没有太深入地使用它 - 在这一点上,我决定将其收缩)。它可以找到here。
似乎选项是:
1)从头开始构建代码,包括 a)OAuth(易碎,复杂) b)更新状态脚本(重写库已有的代码)
2)与上述相同,但使用通用OAuth库
3)找到一个支持新上传方法的库 - 该列表中可能只有一个,但它将涉及阅读文档和测试,或
4)我没想到的其他一些想法
我确保这适用于文本更新 - 只需替换 api.update_with_media(图像) 同 api.update_status(状态= '嘿')。
供参考,这是我正在使用的代码:
` import urllib 导入tweepy
@ app.route( '/') def测试():
consumer_key = '---'
consumer_secret = '---'
access_token = '---'
access_token_secret = '---'
#OAuth process, using the keys and tokens
auth = tweepy.OAuthHandler(consumer_key, consumer_secret)
auth.set_access_token(access_token, access_token_secret)
#Creation of the actual interface, using authentication
api = tweepy.API(auth)
#should encode the image - I tried this several different way
image = urllib.urlopen('image-url')
try:
api.update_with_media(image)
except Exception, e:
print e
return "OK"
`