前提・実現したいこと
Jsonモジュールとtweepyを使い、読み込みエラーが出た場合はログイン認証させ、アクセストークンとアクセストークンシークレットを保存し、再読み込みしてキーをセットし、アカウント名を出力させる。
発生している問題・エラーメッセージ
Traceback (most recent call last): File "login.py", line 52, in <module> me = api.me() tweepy.error.TweepError: Token request failed with code 401, response was '{"err ors":[{"code":32,"message":"Could not authenticate you."}]}'.
下記コードにtry文が三つあり、三つともtryの方向で処理が出来ましたが、me = api.me()でエラーが出ます。
該当のソースコード
Python
1import sys 2import os 3import tweepy 4import pathlib 5import json 6import requests 7 8try: 9 print("try1") 10 #load api key 11 json_open = open('apikeys.json', 'r') 12 json_load = json.load(json_open) 13 14 consumer_key = json_load['api']['api_key'] 15 consumer_secret = json_load['api']['api_key_secret'] 16 17 18 19except Exception: 20 #set api key 21 api_key_input = input("Enter your api key:") 22 api_key_secret_input = input("Enter your api key secret:") 23 path = './apikeys.json' 24 f = open(path, 'w') #Jsonファイルを生成。 25 f.write('{\n') 26 f.write(' "api":{\n') 27 f.write(f' "api_key":"{api_key_input}",\n') 28 f.write(f' "api_key_secret":"{api_key_secret_input}"\n') 29 f.write(' }\n') 30 f.write('}') 31 32 33try: 34 print("try2") 35 json_open = open('settings.json', 'r') 36 json_load = json.load(json_open) 37 38 access_token = json_load['auth']['access_token'] 39 access_token_secret = json_load['auth']['access_token_secret'] 40 41 auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 42 auth.set_access_token(access_token,access_token_secret) 43 44 api = tweepy.API( 45 auth, 46 wait_on_rate_limit=True, 47 wait_on_rate_limit_notify=True 48 ) 49 50 print("api") 51 52 me = api.me() 53 print(f'ログインが完了しました。:{me.user_name}') 54 55except: 56 # get access token from the user and redirect to auth URL 57 auth_url = auth.get_authorization_url() 58 print('Authorization URL:' + auth_url) 59 60 # ask user to verify the PIN generated in broswer 61 verifier = input('PIN:').strip() 62 auth.get_access_token(verifier) 63 64 path = './settings.json' 65 f = open(path, 'w') #Jsonファイルを生成。 66 f.write('{\n') 67 f.write(' "auth":{\n') 68 f.write(f' "access_token":"{auth.access_token}",\n') 69 f.write(f' "access_token_secret":"{auth.access_token_secret}"\n') 70 f.write(' }\n') 71 f.write('}') 72 73try: 74 print("try3") 75 json_open = open('settings.json', 'r') 76 json_load = json.load(json_open) 77 78 access_token = json_load['authtoken']['access_token'] 79 access_token_secret = json_load['authtoken']['access_token_secret'] 80 81 print(f"{access_token}\n{access_token_secret}") 82except Exception: 83 pass 84 85# authenticate and retrieve user name 86auth = tweepy.OAuthHandler(consumer_key, consumer_secret) 87auth.set_access_token(access_token,access_token_secret) 88 89api = tweepy.API( 90 auth, 91 wait_on_rate_limit=True, 92 wait_on_rate_limit_notify=True 93) 94 95print("api") 96 97me = api.me() 98print(f'ログインが完了しました。:{me.user_name}') 99
試したこと
Jsonファイルの修正やtry,except文の見直し。
補足情報(FW/ツールのバージョンなど)
Python 3.8.2
Windows 10 Home
Visual Studio Code
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。