実現したいこと
ここに実現したいことを箇条書きで書いてください。
LineAPIとpythonについての質問です。
下記の関数を動作出来るようにする。
ユーザー認証が上手くいかない。チャンネルユーザートークンが認証出来れば、
全てが上手く行くと思うのですが全くできません。
さらにここからgithubアクションできまった時間に動作するようにするつもりです。
シンプルなプログラムでもう何が悪いか理解できません。
ご教授いただければ幸いです。
前提
ここに質問の内容を詳しく書いてください。
pythonでLineAPIをインポートし、テキストメッセージを自身のラインアカウントに
送ろうと思います。
発生している問題・エラーメッセージ
エラーメッセージ 例外が発生しました: LineBotApiError LineBotApiError: status_code=401, request_id=1dc29e2a-6d8a-4260-8c38-19c64b9b0880, error_response={"details": [], "message": "Authentication failed. Confirm that the access token in the authorization header is valid."}, headers={'server': 'legy', 'cache-control': 'no-cache, no-store, max-age=0, must-revalidate', 'content-type': 'application/json', 'date': 'Wed, 15 Nov 2023 18:56:46 GMT', 'expires': '0', 'pragma': 'no-cache', 'www-authenticate': 'Bearer error="invalid_token", error_description="invalid token"', 'x-content-type-options': 'nosniff', 'x-frame-options': 'DENY', 'x-line-request-id': '1dc29e2a-6d8a-4260-8c38-19c64b9b0880', 'x-xss-protection': '1; mode=block', 'content-length': '104'} File "C:\Users\eisuke0904\Desktop\linebot2\bot\junbot.py", line 12, in main line_bot_api.push_message(USER_ID, messages=messages) File "C:\Users\eisuke0904\Desktop\linebot2\bot\junbot.py", line 15, in <module> main() linebot.exceptions.LineBotApiError: LineBotApiError: status_code=401, request_id=1dc29e2a-6d8a-4260-8c38-19c64b9b0880, error_response={"details": [], "message": "Authentication failed. Confirm that the access token in the authorization header is valid."}, headers={'server': 'legy', 'cache-control': 'no-cache, no-store, max-age=0, must-revalidate', 'content-type': 'application/json', 'date': 'Wed, 15 Nov 2023 18:56:46 GMT', 'expires': '0', 'pragma': 'no-cache', 'www-authenticate': 'Bearer error="invalid_token", error_description="invalid token"', 'x-content-type-options': 'nosniff', 'x-frame-options': 'DENY', 'x-line-request-id': '1dc29e2a-6d8a-4260-8c38-19c64b9b0880', 'x-xss-protection': '1; mode=block', 'content-length': '104'}
実際のjsonファイル全角スペースなども入っていない。また、値も再発行して新しくコピペした。(クリップボートのボタンそのままクリック)加えて、jsonファイルの形式もしっかり守った。VScodeでエラーが検知されていないので正しいと思う。
### 該当のソースコード ```ここに言語名を入力 import json from linebot import LineBotApi from linebot.models import TextSendMessage file = open('info.json','r') info = json.load(file) CHANNEL_ACCESS_TOKEN = info['CHANNEL_ACCESS_TOKEN'] line_bot_api = LineBotApi(CHANNEL_ACCESS_TOKEN) def main(): USER_ID = info['USER_ID'] messages = TextSendMessage(text='こんにちは') line_bot_api.push_message(USER_ID, messages=messages) main() ---------------------------------------------------------------------------------------------------- jsonファイルである。(一応中身の値は伏せてある。本来元々コピペしたので間違っていないと思われる。 { "CHANNEL_ACCESS_TOKEN":"aaa", "USER_ID":"aaa" }
試したこと
print(f"CHANNEL_ACCESS_TOKEN: {CHANNEL_ACCESS_TOKEN}") print(f"USER_ID:{USER_ID}") CHANNEL_ACCESS_TOKEN: your_token USER_ID:your_user_id 一語一句そのまま記載する。AIに聞いた程度だが正常っぽい
・コピペし間違えてないか?再発行してクリップボートボタンをクリックしたので間違っていないと思われる。
・参考にしたサンプルプログラムと違いがないか確認したが間違ってなかった。
・jsonファイルの形式の確認→正しい形式で記述出来ていたし、デバッグモードで実行し辞書として取り出せていると考えた。
補足情報(FW/ツールのバージョンなど)
python3.8系
VScodeで開発,windows PowerShell,win11です。
https://www.youtube.com/watch?v=T0KAE2kq2Xo&t=2007s(参考にした動画)
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー