LINEのグループトークでメンバープロフィールを取得する

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone

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」なども最近注目されていますが

(表に出すか出さないかは別として)この手の分析をボットが常駐してやってくれる、というのも当たり前になるかもしれませんね。

Share on FacebookTweet about this on TwitterShare on Google+Share on LinkedInEmail this to someone