【问题标题】:Django users post to twitterDjango 用户在 Twitter 上发帖
【发布时间】:2012-05-09 09:54:00
【问题描述】:

我使用 Django-social-auth 来验证 Django 项目的用户。因此,我想我拥有 Twitter 用户的所有必要信息,可以代表他们在他们的 Twitter 帐户上发帖。那么我真的需要安装一个新的应用程序吗?或者手头的信息我该怎么做?不只是将相关信息发布到 Twitter API 吗?

【问题讨论】:

    标签: python django twitter


    【解决方案1】:

    您可以将代码提取到您自己的项目中,这样就可以了。但是使用开源库的好处是,当 Twitter 或 Social Network X 更改它的 API 时,很有可能该库如果流行,就会得到更新,而不是您需要进行更改。

    【讨论】:

    • 我已经在几个项目中使用了 django-social-auth。没有抱怨!
    • 正如我所说,我在这个项目中也使用了 DSA。您将如何使用此应用在 Twitter 上发帖?
    • 我相信 django-social-auth 只是一个授权库。一旦你让用户登录,就像 superxor 一样,你可以使用 Twitter API 根据用户的凭据和你自己的 API 密钥发送更新。
    • 好的,谢谢。我已经找到了怎么做,我会尽快在这里发布。
    • 如果我有他的密码,我想代表另一个用户发帖怎么办?
    【解决方案2】:

    因此,如果您使用 Django Social Auth,您可以这样做:

    import urllib
    import settings
    import oauth2 as oauth
    
    try:
        twitter_user = user.social_auth.get(provider='twitter')
    except:
        return
    if not twitter_user.tokens:
        return
    access_token = twitter_user.tokens['oauth_token']
    access_token_secret = twitter_user.tokens['oauth_token_secret']
    
    token = oauth.Token(access_token,access_token_secret)
    consumer_key = settings.TWITTER_CONSUMER_KEY
    consumer_secret = settings.TWITTER_CONSUMER_SECRET
    consumer = oauth.Consumer(consumer_key,consumer_secret)
    client = oauth.Client(consumer,token)
    
    data = {'status':'Your tweet goes here'}
    request_uri = 'https://api.twitter.com/1/statuses/update.json'
    resp, content = client.request(request_uri, 'POST', urllib.urlencode(data))
    

    【讨论】:

    • 如果我有他的密码,我想代表另一个用户发帖怎么办?
    【解决方案3】:

    是的,我相信如果您有必要的用户 twitter 帐户详细信息,那么您可以编写一个 (django) 应用程序来执行此操作。您可以使用 python-twitter 之类的方式在 Twitter 上发帖。

    您应该能够找到有关 Twitter api here 的更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-02-14
      • 2013-10-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-15
      相关资源
      最近更新 更多