Flask 使用不同访问令牌的用户信息不正确。特威比
我在Flask()应用程序中使用Tweepy()。一切正常,我可以成功地获得代币以及状态更新。问题是,当我尝试更改保存的twitter帐户(获取新的访问令牌)时,尽管我可以看到它获取了新的访问令牌,但使用新访问令牌创建的Tweepy API保持不变(前一个用户)。当我执行Flask 使用不同访问令牌的用户信息不正确。特威比,flask,tweepy,Flask,Tweepy,我在Flask()应用程序中使用Tweepy()。一切正常,我可以成功地获得代币以及状态更新。问题是,当我尝试更改保存的twitter帐户(获取新的访问令牌)时,尽管我可以看到它获取了新的访问令牌,但使用新访问令牌创建的Tweepy API保持不变(前一个用户)。当我执行API.me()时,它将返回前一个用户的用户信息。只有在我重新启动整个Flask应用程序后,这个问题才得以解决 在获取用户信息之前,我检查了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 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
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对象,而不仅仅是更改访问令牌,那么它就可以工作
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
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
对象,这对我来说似乎不合适。但这是我让它工作的唯一方法。你应该将你的解决方案作为答案发布,并在可能的时候接受它