スクリーンショット_2019-02-07_21

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独特の「形式」が多くある(アクションとかレイアウトとか)ので、扱うには慣れが必要かも。

この記事が気に入ったらサポートをしてみませんか?