【问题标题】:Incorrect user info with different access tokens. Tweepy具有不同访问令牌的用户信息不正确。呸呸呸
【发布时间】:2014-10-16 01:47:48
【问题描述】:

我在 Flask (http://flask.pocoo.org/) 应用程序中使用 Tweepy(http://www.tweepy.org/)。一切正常,我可以成功获得令牌以及发布状态更新。问题是,当我尝试更改保存的 Twitter 帐户(获取新的访问令牌)时,虽然我可以看到它获取了新的访问令牌,但使用新访问令牌创建的 Tweepy API 保持不变(前一个用户的)。当我做API.me() 时,它会返回前一个用户的用户信息。只有在我重新启动整个 Flask 应用程序后才能解决此问题。

在获取用户信息之前,我检查了 API 使用的访问令牌。它显示了不同的访问令牌(这是正确的),但获取的用户信息不正确。

这是显示我的程序逻辑的示例代码:

import tweepy

c_key = "My consumer key"
c_secret = "My consumer secret"
auth = tweepy.OAuthHandler(c_key, c_secret)

def set_access_token(token, token_sec):
    auth.set_access_token(token, token_sec)

def get_me():
    print "access_token"
    print auth.access_token.key
    print "access_token_secret"
    print auth.access_token.secret
    api = tweepy.API(auth)
    return api.me()


if __name__=="__main__":
    tokens = [("tok 1", "sec1"), ("tok2", "sec2")]
    for token in tokens:
        set_access_token(token[0], token[1])
        print get_me().screen_name


#output
user1
user1

#expected output
user1
user2

我应该在每次操作后关闭连接还是什么?有帮助吗?

使用 Flask-Tweepy,因为

http://flask-tweepy.readthedocs.org/en/latest/

Flask-Tweepy 0.1 目前仅支持以用户身份连接 注册了应用程序(即只能更新状态 该用户)。要更新状态,您还需要访问令牌 密钥和访问令牌秘密,您可以在 Twitter 开发者网站。

编辑: 我找到了解决此问题的解决方案/解决方法。如果您每次都创建一个新的 auth 对象,而不是仅仅更改访问令牌,它就可以工作。

if __name__=="__main__":
    tokens = [("tok 1", "sec1"), ("tok2", "sec2")]
    for token in tokens:
        auth = tweepy.OAuthHandler(c_key, c_secret)
        set_access_token(token[0], token[1])
        print get_me().screen_name
#output
user1
user2

【问题讨论】:

  • 您应该发布您的解决方案作为答案并在可能的情况下接受它

标签: flask tweepy


【解决方案1】:

我找到了解决此问题的解决方案/解决方法。如果您每次都创建一个新的身份验证对象,而不是仅仅更改访问令牌,它就可以工作。

if __name__=="__main__":
    tokens = [("tok 1", "sec1"), ("tok2", "sec2")]
    for token in tokens:
        auth = tweepy.OAuthHandler(c_key, c_secret)
        set_access_token(token[0], token[1])
        print get_me().screen_name
#output
user1
user2

虽然我不确定这是否是理想的解决方案,因为它每次都重新创建 auth 对象,这对我来说似乎不合适。但这是我让它工作的唯一方法。

【讨论】:

    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 1970-01-01
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2017-08-31
    • 2018-02-21
    • 2021-08-31
    相关资源
    最近更新 更多