【问题标题】:Python, how to POST statuses/update_with_media to Twitter?Python,如何将 statuses/update_with_media 发布到 Twitter?
【发布时间】:2013-09-03 23:12:49
【问题描述】:

我能够成功地在 Python 中发布状态更新(推文):

import urllib
import oauth2 as oauth

token = oauth.Token(access_token,access_token_secret)
consumer = oauth.Consumer(consumer_key,consumer_secret)

client = oauth.Client(consumer,token)

data = {'status': 'hello world'}
request_uri = 'https://api.twitter.com/1/statuses/update.json'

resp, content = client.request(request_uri, 'POST', urllib.urlencode(data))

现在我想知道我需要更改哪些内容才能使用 update_with_media 发布图片?

【问题讨论】:

    标签: python twitter


    【解决方案1】:

    最后我让它工作了,想告诉那些为此苦苦挣扎的人,我终于用漂亮的 Twython 库轻松地做到了,它很好地抽象了函数:

    from twython import Twython
    
    twitter = Twython(
        twitter_token = 'consumer_key',
        twitter_secret = 'consumer_secret',
        oauth_token = 'access_token',
        oauth_token_secret = 'access_token_secret'
    )
    
    twitter.updateStatusWithMedia('/home/blah/projects/pathexample/static/example.png', status='hello!')
    

    【讨论】:

    • 看起来不再是这个界面了。现在它被称为 update_status_with_media() 并且工作方式有所不同。
    【解决方案2】:

    也许是这样的?

    data = {'status': 'hello world'
          , 'media': ['image.jpg']
          }
    request_uri = 'https://upload.twitter.com/1/statuses/update_with_media.json'
    
    resp, content = client.request(request_uri, 'POST', urllib.urlencode(data))
    

    这只是通过检查Working with statuses/update_with_mediaPOST statuses/update_with_media 快速拼凑起来的,可能不正确。

    【讨论】:

    • 我试过了,但它失败了,并显示“错误创建状态”。这没有多大帮助:(
    • 我收到状态 403,Twitter 文档说:请求已被理解,但已被拒绝。随附的错误消息将解释原因。当请求因更新限制而被拒绝时使用此代码。
    猜你喜欢
    • 2012-02-28
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-02
    • 2011-11-11
    • 1970-01-01
    相关资源
    最近更新 更多