2014-10-15 2 views
0

나는 Flask (http://flask.pocoo.org/) 응용 프로그램에서 Tweepy (http://www.tweepy.org/)를 사용하고 있습니다. 모든 것이 정상적으로 작동하며 상태 업데이트를 게시 할뿐 아니라 토큰을 성공적으로 가져올 수 있습니다. 문제는 저장 한 트위터 계정을 변경하려고 할 때 (새 액세스 토큰 가져 오기) 새로운 액세스 토큰이 생성 된 것을 볼 수 있지만 새로운 액세스 토큰을 사용하여 만든 Tweepy API는 이전 사용자와 동일하게 유지됩니다. 그리고 내가 API.me()을하면 이전 사용자의 사용자 정보가 반환됩니다. 이것은 Flask 앱 전체를 다시 시작한 후에 만 ​​해결됩니다.다른 액세스 토큰이있는 잘못된 사용자 정보입니다. Tweepy

사용자 정보를 가져 오기 전에 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 

내가 모든 작업, 또는 뭔가 후 연결을 종료하기로되어 있습니까 : 여기

은 샘플 코드는 내 프로그램 로직을 보여주는거야? 도움이 필요한가요?

나는

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

플라스크-Tweepy 0.1는 현재 응용 프로그램 (즉, 만 업데이트 할 수 있습니다 등록있는 사용자로 연결 지원하기 때문에 플라스크-Tweepy를 사용 하지 해요 해당 사용자의 상태). 상태를 업데이트하려면 키 및 액세스 토큰 보안이 필요합니다.이 토큰은 트위터 개발자 웹 사이트에서 만들거나 검색 할 수 있습니다.

편집 : 나는이 문제에 대한 해결책/해결 방법을 발견했다. 매번 새로운 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 
+0

솔루션을 답변으로 게시하고 가능한 경우 수락해야합니다. – Luigi

답변

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 객체마다, 다시는 만들어집니다. 그러나 그것이 그것이 작동하도록 할 수있는 유일한 방법입니다.

관련 문제