【Messaging API #1】 クライアントのユーザID(user_id)とアカウント名(display_name)の取得方法 (python)
久しぶりにMessaging APIを使ってLinebotを書いてますが、メッセージを送信してきたクライアントのユーザIDとアカウント名の取得方法を忘れそうなので、書き残し。
クライアント側から「おはようございます」とpostすると、Webhookされたサーバーサイドのeventの中にこんな情報が入ってきます。
eventはWebhookParserでparseした中にiteratableで入っています。
event { "message": {"id": "xxx", "text": "おはようございます", "type": "text"}, "replyToken": "yyy", "source": {"type": "user", "userId": "zzz"}, "timestamp": 14994xxxxxxxx, "type": "message" }
ここで得られる"userId": "zzz"が、ユーザIDに相当し、ここからget_profileでアカウント名を得ます。
if isinstance(event.source, SourceUser): profile = line_bot_api.get_profile(event.source.user_id) user_id = event.source.user_id # ユーザID (zzz) user_disp_name = profile.display_name # アカウント名
終了です。
これで得られたユーザIDでDB登録をしたりできますね。