我想在我自己(而不是其他人)的twitter帐户上以编程方式发布图片。为此,我尝试使用tweepy库——但是它们有一个方法叫做api.update_与媒体('the image')不起作用。在
twitter似乎不赞成这种方法:
…状态/用媒体更新
(很抱歉html被截断了->;我是新来的,所以他们不允许我发布太多链接)
Twitter指示我们改用这个:
…公共/上传媒体
基本上,这是一个两步的方法。
步骤1)上传媒体并在json中获取一些ID
步骤2)使用此ID更新状态
这两个步骤都需要身份验证。问题是twitter库(可以在这里找到twitter库)实际上并不支持这种新方法。它们的文档中都有以前的简单版本。在
看起来这一次可能修复了它,但是文档没有更新(我实际上并没有玩得太深——就是在这一点上,我决定把它外包出去)。可以找到here。在
似乎有以下几种选择:
1)从头开始构建代码,包括
a) OAuth(易碎,复杂)
b) 更新状态脚本(重新编写库已有的代码)
2)同上,但使用通用OAuth库
3)找到一个支持新上传方法的库——这个列表中很可能有一个,但是需要阅读文档和测试,或者
4)其他我没想到的主意
我确保这对文本更新有效--只需替换
api.update_与媒体(图像)
具有
api.update_状态(status='嘿')。在
作为参考,下面是我使用的代码:
在`
导入urllib
进口粗花呢
在@应用程序路径('/')
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"
`