前提・実現したいこと
Discord botを作成し、PythonにてGoogle Spread Sheetを読み書き操作することが目的となります。
参考サイト様:【もう迷わない】Pythonでスプレッドシートに読み書きする初期設定まとめ
ソースは完成し、実行、動作確認できたのですが、
一定時間経過後に後述の認証エラーが発生致します。
ポイント
・起動直後はGoogle Spread Sheetの操作は読み書きが可能。
・一定時間経過後に認証エラーとなり、操作不可となる。
環境
Python 3.7.4
Windows8.1
エラーメッセージ
gspread.exceptions.APIError: { "error": { "code": 401, "message": "Request had invalid authentication credentials. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.", "status": "UNAUTHENTICATED" } }
認証周りのコード
サーバー移行の際に取り回しが良いようにTOKEN等は外部から読み込む形にしています。
# 設定ファイルからサーバ設定を読み込む inifile = configparser.ConfigParser() inifile.read('BOT_config.ini','UTF-8') TOKEN = inifile.get('config', 'TOKEN') SHEETNAME = inifile.get('config', 'SHEETNAME') SPREADSHEET_KEY = inifile.get('config', 'SPREADSHEET_KEY') JSON_FILE = inifile.get('config', 'JSON_FILE') # スプレッドシートのワークシートを取得する scope = ['https://spreadsheets.google.com/feeds','https://www.googleapis.com/auth/drive'] credentials = ServiceAccountCredentials.from_json_keyfile_name(JSON_FILE, scope) gc = gspread.authorize(credentials) wsclass = gc.open_by_key(SPREADSHEET_KEY) worksheet = wsclass.sheet1
試したこと
類似内容の投稿を実施致しましたが、問題解決致しませんでした。
Google speech APIで401エラー 認証が通らない
→課金設定しましたが、解決せず。
Google API利用時にAPI errorが発生する
→時刻同期しており、解決せず。
補足情報
インストールされているパッケージの一覧は以下となります。
#python -m pip freeze aiohttp==3.6.1 async-timeout==3.0.1 attrs==19.2.0 cachetools==3.1.1 certifi==2019.9.11 chardet==3.0.4 discord==1.0.1 discord.py==1.2.3 google-api-python-client==1.7.11 google-auth==1.6.3 google-auth-httplib2==0.0.3 gspread==3.1.0 httplib2==0.14.0 idna==2.8 multidict==4.5.2 oauth2client==4.1.3 packaging==19.2 pip-review==1.0 pyasn1==0.4.7 pyasn1-modules==0.2.6 pyparsing==2.4.2 requests==2.22.0 rsa==4.0 six==1.12.0 uritemplate==3.0.0 urllib3==1.25.6 websockets==8.0.2 yarl==1.3.0
よろしくお願いいたします。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/10/15 00:24