※api.aiは、2017年10月にDialogflowへと名称変更されました。
Facebookメッセンジャーbotとして「知野いずみ」を開発してしばらく経ちますが、LINE Messaging APIによるチャットボット開発ハンズオンもここ数ヶ月で何度か行ってました。
その中で「グループトーク内でのユーザー情報取得」ができるようになっていたので、その方法についてまとめておきます。
以前はグループやルームのIDのみ取得可能で、そこに参加するメンバー情報は取得できませんでした。どうやらそれができるようになったのは、5月末のリリースからだそうです。
という事で、早速LINE Messaging APIを見ながらやってみましょう。
API情報
リクエストURL
Group | https://api.line.me/v2/bot/group/{groupId}/member/{userId} |
---|---|
Room | https://api.line.me/v2/bot/room/{roomId}/member/{userId} |
ヘッダー情報
Authorization | Bearer {Channel Access Token} |
---|
Webhookで取得したJSONに書かれているgroupId / roomId とuserId、botのアクセストークンがあれば、名前やプロフ画像をGetできます。
PHP例
とりあえずユーザー名(displayName)を取得するならこんな感じ。
$profUrl ='https://api.line.me/v2/bot/group/' . $groupId . '/member/' . $userId;$ch = curl_init($profUrl); curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Authorization: Bearer ' . $accessToken ));$getProfile = curl_exec($ch);curl_close($ch);$resProfJson = json_decode($getProfile);$displayName = $resProfJson->displayName;
今後試したいことについて
以前からボットでやりたい事は「グループトークで人の活動を活発化させるボット開発」だったので、今回の機能追加でそれが大分取り組みやすくなりました。
発言回数の増減傾向はすぐにでもできますし、api.aiなどを連携すれば、発言内容に対するアノテーションやモチベーション分析などのハードルもグッと下がります。もちろんそこにはちゃんとしたロジックが必要ですが、LINEというメジャーなプラットフォームで開発し易いというだけでも喜ばしいことなですね。
Laboratikさんによるチームワーク分析ツール「A」なども最近注目されていますが、
(表に出すか出さないかは別として)この手の分析をボットが常駐してやってくれる、というのも当たり前になるかもしれませんね。