プログラミング

LINE Messaging APIでグループ参加者のuserIdと表示名を取得する

この記事を読むのに必要な時間は約 3 分20秒です。

こんにちわ。

以前こんな記事を記載しました。

あわせて読みたい
LINEグループトークの内容をスプレッドシートにDBとして保存するこんにちわ。 LINEでとある機能を自動化したので、その備忘録的に本記事を投稿したいと思います。 やりたい事 LINEのグループト...

その後、追加で○○さんが投稿したコメントがこれ、という情報を追加したい、というニーズが発生しました。

そこでどのようにユーザー情報を取得すれば良いのか?を調べて実装してみたのでその内容を投稿したいと思います。

やりたいこと

最初に記載しましたが、もう少し詳細に記載するとLINEグループ内で投稿された内容をスプレットシートにテキストとして残す+投稿者情報を取得する、という物になります。

スプレットシートシートのイメージ

以前作成したのはメッセージのみを記録する、という物でしたが、今回は投稿者と投稿者Idを追加で取得する、という物になります。

実装内容

  • LINEグループに投稿された内容を取得

ちなみにこのrespoinseLineJsonで取得出来ているデータを見ればある程度分かりますが、ユーザー情報であったり、グループ情報がJSONの中に要素として存在します。

そのためJSONから必要な各要素を取得すればメッセージを取得する事であったり、ユーザー情報を取得出来ます。今回は実施していませんが、投稿日時情報なんかも取得可能です。

  • JSONから投稿内容と投稿者情報を取得

 

こちらは上記にも記載していますが、グループID情報とユーザーID情報がユーザ名を取得する事が出来ます。

ちなみ余談ですが、こちらを利用するとユーザー名は取得出来ませんでした。

こちらの取得方法だと自分が作ったMessaging APIのアカウントをそのユーザが友だち登録していないといけない、という条件があるためになります。

しかし、今回利用した

については基本グループに参加している事を条件にユーザー情報は取得可能ですので、こちらを利用しました。

こちらは最近(2020年頃)?出来たようなので、要望が多かったのでしょうかね。

 

感想

テキストをスプレットシートに保存する際に、LINEで投稿された文章がどういうJSONデータであり、どういう情報要素があるのか?を最初にしっかりと確認しておけば良かったなと思っております(笑)

それとユーザ取得APIにも複数種類が存在し、グループ内のユーザー情報を取得するAPIであればユーザー情報を取得出来る事が分かった事が今回の実装してみて良かったなと思っている点です。

こちらのAPIについてややグレーな気もするのでLINE側で改悪されない事を願いつつ、今後も利用局面があれば利用していこうと思います。