LINE Botを初めて作ってみた話
お久しぶりです。先月は全く更新できなかった事を後悔しているねじわさと申します。
こういったのは習慣をつけていかないとダメですね。
という訳で、今回はPHPを用いてLINE Botを作ってみた時のお話を書いていこうと思います。
なぜ作ろうと思ったのか
まあ詳しく話すとアレなので簡単にまとめると、LINEをPCに入れると色々面倒だけど、PCで通知を受け取りたいので、LINEグループのトークに誰かが投稿したらDiscordに通知が行くようにするBotを作って欲しいみたいな事言われたので作りました。
実際にこんな感じに動かしています:
(アイコンと名前を隠しているので分かりづらいですが、実際のLINEアカウントに設定されているアイコンと名前がDiscordでも引用されています)
仕組み
仕組みといってもそんな難しい事はしていなくて、
また公式で LINE SDK for PHP を用意してくださっているので、
- テキストをwebhookで受信したら
- アカウント情報を取得して
- まとめてDiscordにバーーン!!
とかいう適当設計だけど動いてくれてます。
(一応ソースコードをGitHubに上げています: https://github.com/yuzulabo/line-to-discord-bot/blob/master/public/receiver.php)
また、このBotは受信専用で、なおかつプライベート利用なので、Developer Trialかフリープランでも十分動きます。
躓いた点
アカウント情報を取得の時、最初は getProfile([userId])
というのを使用していたのですが、
どうやらこれは Botと友達登録していないと閲覧できない という仕様らしく、
友達を巻き込んでテストした時に自分だけ名前出てるのに他の人はでない...?という現象に悩まされていました。
そのため、グループを使用するBotは getGroupMemberProfile([groupId], [userId])
を使用すると上手くいきます。
(これ: https://github.com/yuzulabo/line-to-discord-bot/commit/2a17ae86068636a060730f7515a4e464889f27bd)
さいごに
現状テキストのみなので、時間があったりしたら画像送信とかもやってみたいです。
あと先月サボってすみませんでしたッ!!!!