LINE公式アカウント上でのユーザーコミュニケーションを自動で行うことができる「LINE Messaging API」。2016年4月に「LINE BOT API」として試験的に提供が開始されていましたが、同年9月には現在の名称にて一般公開されました。
一般公開時にはいくつかの機能追加が合ったのですが、その中の一つに「グループトーク内でのユーザー情報取得」があります。
以前はグループやルームのIDのみ取得可能で、そこに参加するメンバー情報は取得できませんでした。どうやらそれができるようになったのは、5月末のリリースからだそうです。
[sc_Linkcard url=”http://nowsprinting.hatenablog.com/entry/2017/06/02/024020″]という事で、早速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} |
AD
ヘッダー情報
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;
今後試したいことについて
以前からボットでやりたい事は「グループトークで人の活動を活発化させるボット開発」だったので、今回の機能追加でそれが大分取り組みやすくなりました。
発言回数の増減傾向はすぐにでもできますし、Googleが提供する自然言語処理ツール「Dialogflow」などを連携すれば、発言内容に対するアノテーションやモチベーション分析などのハードルもグッと下がります。もちろんそこには詳細なロジックが必要ですが、LINEというメジャーなプラットフォームで開発し易いというだけでも喜ばしいことですね。