【发布时间】:2015-07-01 01:37:20
【问题描述】:
我想在我自己(而不是其他人)的 Twitter 帐户上以编程方式发布图像。为此,我尝试使用 tweepy 库——但他们有一个名为 api.update_with_media('the 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(状态='嘿')。
作为参考,这是我正在使用的代码:
` 导入 urllib 导入tweepy
@app.route('/') 默认测试():
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"
`
【问题讨论】:
标签: python twitter oauth twitter-oauth tweepy