LIFFで立ち上げてもらったLIFFブラウザから、LINEのユーザー情報を受け取りユーザー認証を完了させ、Rails側にデータを格納し、LINE Messaging APIでユーザーAが指定したLINE友達にその公式LINE botからPushメッセージを送る事ができる、という公式LINEアプリ?を開発しようとしています。
のですが、正直RailsでAPI連携をするのも、LINE API自体も初めてすぎてかなり手間取ってます。
#まずは公式が発表している資料やSDK
・Ruby用のSDK(ソフトウェア開発キット)
https://github.com/line/line-bot-sdk-ruby
↓な感じでgemとして追加もできるらしい。(参照)
gem 'line-bot-api', github: 'stivan622/line-bot-sdk-ruby'
SDK for Rubyの使い方は以下がわかりやすいです。
#戸惑いポイント①LINEボットとチャネル(LINEログイン・LINE Messaging API)の関係と使い分け
LINE Messaging APIと検索すると、LINEボットに関する情報ばかり出てきます。
ですが、私の実現させたいアプリはボットではありません。
LINE_BOT_Development_Guidelines 7p/60pより転載
###LINEログインを選択=>LIFF作成、LINE Messaging API=公式LINEアカウント作成
LINEチャネルを新規作成する際、LINEログインとLINE Messaging APIというのが選べます。
LINE Messaging APIはそのままなのでわかると思いますが、LIFFを使う際は、LINEログインを選択します。
さらに、公式LINEを使ってLIFFを立ち上げたい、という場合は、必ず同じプロバイダー下にLINEログインチャネルとLINE Messaging APIチャネルをどちらも作成しなければなりません。
発行されたLIFF URLをリッチメニューのリンク先に設定したり、LIFF IDをnode.jsやGASなどに利用してMessaging APIを連携と取ったりします。(引用元: 【覚書】LIFF IDの取得方法)
LINE Messaging APIを選択すると、公式LINEのQRコードが発行できたり、APIチャネルからLINE Account Managerというまたちょっと別のサイトに飛んでリッチメニューを設定できたりします。
#Webhookって何?
Webhookとは、相手のサービス(この記事ではLINE)でイベントが発生したら、事前に設定しておいたURLにイベントの内容をPOSTしてもらう仕組みのことです。
例えば、自分の作ったサービスの/callbackというURLをLINEのチャネルに設定しておけば、チャネルにメッセージが来た時に/callbackにメッセージの内容をPOSTしてもらう事が出来ます。
ただし、LINEのサーバーからアクセス出来るURLである必要があるので、サービスを実際に公開していないときちんと動作しません。例えば開発中のlocalhost:4567は自分のPCからしかアクセス出来ないURLなので、localhost:4567/callbackを設定した状態でメッセージが来てもlocalhost:4567/callbackは呼び出されません。
この仕様があるため、LINE Botを開発する時は基本的に毎回デプロイする必要があります。
ポート開放をすればいちいちデプロイする手間は省けますが、セキュリティ上のリスクもあるのでここでは紹介しません。
#LINE push通知の実装ってどうやるん
まだ実装してないけどここら辺が参考になりそう
#ネットで見つけたハンズオン達
環境変数とは何か、Botの登録の仕方から始まり、オウム返しをするbotを作ります。
・【第1回】LINE×Ruby on Railsで作ろう!シゴトに生かすLINE Bot!
第二回では、フレックスメッセージとリッチメニューの設定を行えます。
・【第2回】LINE×Ruby on Railsで作ろう!シゴトに生かすLINE Bot!
第三回では、楽天レシピAPIと連携させメッセージに料理名が送られてきたときにその料理のレシピをフレックスメッセージで送る、という実装をしています。
【第3回】LINE×Ruby on Railsで作ろう!シゴトに生かすLINE Bot!