LINE Messaging APIを使ってみた(ログイン連携・Flex Message)
受託案件でLINEのMessaging APIを使ってみたら、思ったよりもいろいろなことができた話。
※この記事はmediumより移行しました)
LINE Messaging APIでできること
クローズであんまり機能がないイメージだったけど、使ってみると以下のようなことができた。
・特殊なレイアウトのメッセージ(flexメッセージ)
・特定ユーザーとのメッセージ送受信
・LINEログイン共通のユーザーUID
・ユーザーごとのカスタムリッチメニュー
特殊なレイアウトのメッセージがつくれる
LINEが規定したレイアウト方法で、以上の画像のようなリッチなメッセージがつくれる。
ボタン要素などにはアクションをつけられる。webhook、メッセージ、Uriを開く、日時選択、カメラ、位置情報などがある。各アクションの詳しいはドキュメントを参照。
また、下記でシミューレート可能(LINEのデベロッパーアカウントが必要)なので、まずは試してみるとわかりやすい。
LINE Messaging APIでbotメッセージの送受信
LINE Messaging APIにはpushメッセージという機能があり、特定のユーザーに対して自由にメッセージを送ることが可能。メッセージの送受信の実装については別で記事を書きました。
botとLINEログインは連携できる。
最初に苦戦したのが、Messaging APIのbotとLINEログインの紐付けだった。
まったく別の機能だと思っていたので、独自でLINEログインしたユーザーのIPを取って、同じIPからのアクセスで紐付けをする処理を書いたりしていたけど、なんと管理画面から連携するだけで共通のユーザーUIDが使えた。
まずは以下よりMessaging API(bot)とLINEログインの2つチャネルを作成する。
LINEログインの方の設定に行き、「このチャネルにリンクされたボット」という項目があるので作成したMessaging APIのチャネル選択。
ここまで完了すると、次からLINEログインで返されるユーザーUIDがbotでも使えるようになる。
これで例えば、LINE友達追加→WEBサービスにLINEログイン→WEBサービスからメッセージを送信という実装が可能になる。
ユーザーごとのカスタムリッチメニュー
リッチメニューはユーザーごとに別のものを設定可能。
全てのユーザーに対して同じメニューを設定する場合は以下のようなエンドポイントになる。
https://api.line.me/v2/bot/user/all/richmenu/#{richmenu-id}
UserIDが取得できていれば、このallの部分をUserIDに変更すれば、各ユーザーごとに個別のリッチメニューを設定することができます。
さらに詳しくはドキュメントを参照あれ。
まとめ
以上のように、思った以上に色々なことができた。ただ、色々なところでLINE API独特の「形式」が多くある(アクションとかレイアウトとか)ので、扱うには慣れが必要かも。
この記事が気に入ったらサポートをしてみませんか?