2017-04-26 13 views
0

私はTwitterのリストのメンバーを読み取るためにPythonで簡単なスクリプトを書いています。TwitterAPI "トークンが無効または期限切れです。"

コード:

TW_CONSUMER_KEY = '<consumer key>' 
TW_CONSUMER_SECRET = '<consumer secret>' 
TW_ACCESS_TOKEN = '<access token>' 
TW_ACCESS_TOKEN_SECRET = '<token secret>' 

twapi = TwitterAPI(TW_CONSUMER_KEY, TW_CONSUMER_SECRET, TW_ACCESS_TOKEN, TW_ACCESS_TOKEN_SECRET) 

def list_members(slug, owner_screen_name, limit=1e10): 
    """See https://dev.twitter.com/rest/reference/get/lists/members""" 
    cursor = -1 
    members = [] 
    try: 
     response = twapi.request('lists/members', {'slug': slug, 'owner_screen_name': owner_screen_name, 'cursor': cursor, 'count': 5000}) 
     if response.status_code in [88, 130, 420, 429]: # rate limit 
      sys.stderr.write('Error for %s/%s: %s\nSleeping for 5 minutes...\n' % (owner_screen_name, slug, response.text)) 
      time.sleep(301) 
     elif response.status_code != 200: 
      sys.stderr.write('Skipping bad query: %s\n' % response.text) 
      return members 
     else: 
      items = [r['screen_name'] for r in response if 'screen_name' in r] 
      return items 
    except Exception as e: 
     sys.stderr.write('Error: %s\nskipping...\n' % e) 
     return members 
    return members 

このコードは、エラーが発生します。

Skipping bad query: {"errors":[{"code":89,"message":"Invalid or expired token."}]} 

私は、ドキュメントは、彼らが失効していないと言う場合でも、トークンと消費者のキーを更新したが、これにしました役立たず。

は、この問題について何かを行うことができますか? TwitterAPIコールは正しいですか?

+0

あなたはアクセストークンとアクセストークンシークレットを取得するにはTwitterでログインしましたか?要求からのものではなく、/ oauth/access_tokenへの応答からのアクセストークンを使用しましたか? https://dev.twitter.com/web/sign-in/implementing –

+0

私は自分のトークンを使用して正確なコードを使用し、それがうまく働きました。アクセストークンを再生成してみてください。 – Jonas

答えて

0

あなたのコードは大丈夫ですが、あなたはTwitterで自分のアプリを管理し、「読み取り、書き込みおよびダイレクトメッセージ」する権限を変更する必要があります。

関連する問題