※この投稿は前回質問の続きとなります。お手数ですがこちらを見てから回答をお願いします。
前提・実現したいこと
LINE Messaging APIで前回のオウム返しBOTの次ステップとして、LINEグループのメッセージとその送信者のUserIDを取得し、そこから送信者の名前を取得して一緒にログとして出力するBOTを作ろうとしています。最終的にはtxtファイルにログを書き込むつもりでいます。
発生している問題・エラーメッセージ
UserIDを取得する際に、下記のエラーメッセージが出ます。
File "LINEbot.py", line 53, in handle_message temp1 = line_bot_api.get_profile(event.source.userId).display_name AttributeError: 'SourceUser' object has no attribute 'userId'
しっかりドキュメントも読み、何度も試してみたのですがどうしてもこのエラーが出ます...
ご教授のほどよろしくお願いします。
また、APIから返されるJSONをそのまま出力させたものはこちらになります。(整形・フォーマット済み)
json
1{ 2 "message": { 3 "id": "10652218647817", 4 "text": "あああああ", 5 "type": "text" 6 }, 7 "replyToken": "c175a50bc1c64cd790da50ee4e4f76d7", 8 "source": { 9 "type": "user", 10 "userId": "※私のUserIDなので念のため隠させていただきます" 11 }, 12 "timestamp": 1569743478377, 13 "type": "message" 14}
該当のソースコード
LINEbot.py
Python
1@handler.add(MessageEvent, message=TextMessage) 2def handle_message(event): 3 global time, msg, temp1, temp2 4 time = datetime.datetime.now(tz_jst).strftime("%Y/%m/%d %H:%M:%S") 5 temp1 = line_bot_api.get_profile(event.source.userId).display_name 6 temp2 = event.message.text 7 msg = "[" + temp1 + " | " + time + "] " + temp2 8 line_bot_api.reply_message( 9 event.reply_token, 10 TextSendMessage(text=msg) 11 )
今回該当範囲はここだと断定できますので一部分だけ書かせていただきました。
ちなみに期待される返答メッセージは
[ユーザー名 | 時刻] メッセージ内容
という感じのものです。
試したこと
・記述の変更など→効果なし
補足情報(FW/ツールのバージョンなど)
Pythonやライブラリのバージョンについては前回質問をご覧ください。
回答1件
あなたの回答
tips
プレビュー