LINE Bot作成の流れ
参考記事:
プログラムとかよくわかんねえけどLINEのBot作ったらやべえの!?的な人向け。俺もそう。なので、間違っていることが多々あることを承知で、俺的なアレを超語彙力高めに丁寧に書く。とりあえずLINE Bot作成の手順は以下の通り。
- LINEでそれ用のアカウントを作る
- Cloud9、Herokuでプロジェクト作成
- 色々紐付ける
とりあえずLINEでBot用のアカウント(これはLINEがタダで作らせてくれる)を作る。それだと、普通に店とかが使う用のLINE@的な感じになるので、それをBot化するために「MesseagingAPI」ってやつを使う。これを使うと、「こんなメッセージが来たときはこうする」的なやつが使えるようになる。さらに「こうする」の部分をプログラムを書いて設定するんだけど、その設定がcloud9、Herokuで無料でできる。
LINEでそれ用のアカウント作成
LINEのアカウント作って、それをAPI使用できるようにする。
- LINEビジネスセンター…LINEアカウントを作る場所 自分のアカウント自体も
- LINEマネージャ…LINEアカウントの基本的な管理をする場所
- LINEデベロッパーズ…LINEアカウントのBotよりの管理をするところ
LINEアカウント作成
とりあえず、LINEのアレ用のアカウントを作る
ラインビジネスセンター
https://business.line.me/ja/
アカウントリスト
>ビジネスアカウントを作成する
>Messaging APIを始める
>個人とか適当に
>確認する
>申し込む
LINEアカウントのBOT設定
LINEアカウントで、APIを使えるように(Bot設定を)する
ラインマネージャ
https://admin-official.line.me/
APIを利用する>確認>OK
BOT設定:
- Webhook送信→利用する
- 自動応答メッセージ→利用しない
ちなむと
- 「ホーム投稿」下の「メッセージ」で簡単な応答設定ができる
- アカウント設定>基本設定 で、人に送る用のQRコード、URLがわかる
この時点で、もう友達追加とかはできる。
アクセストークン等の取得
アクセスするための識別番号的なものを取得しておく。
ラインマネージャ
https://admin-official.line.me/
Bot設定>ステータスの「LINE Developersで設定する」
デベロッパーズ>Channel Access Token>ISSUE
チャンネルアクセストークンを発行して、以下の情報をメモっておく
- Channel Secret
- Channel Access Token
プロジェクトの作成
Cloud9でプロジェクト作成
Cloud9っていう、ブラウザ(ChromeとかFirefoxっとか)上でプログラムが書けるサービスに登録する。
Create a new workspace>Public>Rubyとか
並行して、Herokuに登録しておく。Cloud9で書いたプログラムを、Herokuに設置するイメージ。Herokuはプログラムを設置する場所的なもの。LINE Botにメッセージを送ると、Herokuにアクセスがいって、Herokuに置いてあるコードが実行される流れになる。
少し古いが参考にした記事。とりあえず、一番上のオウム返しBotと、注意点の記事をコピペしまくったら、Railsとかよくわからないけどいけた。
- Line Messaging API オウム返しBot(rails × heroku)
- LINE BOTを試してみる(Cloud9 + Heroku)
- 【メモ】Cloud9からHerokuにRailsプロジェクトをデプロイする際の注意点(2015年10月)
プログラムを送ったりログを見たりする場所(Cloud9の作業画面の下のほう)でHerokuにコードを置いたり、更新したりするために、Gitを使う。Gitはそういうツール。とりあえずこれを入れる。
git init
heroku login アドレスとパス入れる
heroku create 適当な名前 ←適当な名前は適当に名前アレする
# Name is already takenになったら名前変えてもう一回
###Herokuにfixieをインストール
なんかFixieっていって、必要なものらしい。無料だけど、herokuにクレカ情報入れないといけない
heroku addons:create fixie:tricycle
コンソール上でこれでもいけるけど、まだクレカ情報入れてない場合はherokuのサイトにいって直接入れる
右上のメニューみたいなアイコン>Elements>「Fixie」で検索>login to install
Fixie>Account Details で、以下の情報をメモる。
・Proxy URL
・Outbond IPs
それぞれの紐付け
###Whitelist、WebhookURL登録
ラインデベロッパーズ(下リンクのラインマネージャから進んだほうがわかりやすい)
https://admin-official.line.me/
ホワイトリストって言って、「こいつからアクセス来たときだけコード実行する」的な設定をする。「Server IP Whitelist」に、Fixieでメモった「Outbond IPs」を登録する。右側の入力ボックスには何も入れなくて大丈夫。
Basic Information>Webhook URLに
https://アプリ名.herokuapp.com:443/callback
みんな色々言ってるけど、これでOK。問題ない。普通のURLではなく、443とかcallbackとか書かないといけない決まりなだけ。
コンソールでHerokuにキーとか色々送る
Cloud9のコンソールからHerokuに、こういいう感じでやりますよ、的なものを言っておく。ここで、FixieのProxy URLと、LINEのシークレットキー、アクセストークンを入れる。
heroku config:add OUTBOUND_PROXY='コピペ'
heroku config:add CHANNEL_SECRET='コピペ'
heroku config:add CHANNEL_ACCESS_TOKEN='コピペ'
FOO=barとか出るときは、イコールの前後にスペースいれんなって話
で、プッシュ。プッシュは、Cloud9で書いたコードをHerokuに更新してあげるって話。プログラムを書き直したときは、とりあえず下のコードを入れておけば大丈夫。
git add .
git commit -m 'love kana nishino'
git push heroku master
これで確認。ラインマネージャでQRコードを表示して、モバイルのLINEで読み込んで友達追加。
ラインマネージャ
https://admin-official.line.me/
アカウント>アカウント設定>基本情報
LINE Botのいじり方
とりあえず、俺みたいなよくわかってない人は、上のほうでコピペした記事をいじる形式になると思う。なので簡単にわかったことを書いておく。
※わかりやすいように書いてるだけなので、これ以下はコピペしないように。
ruby:webhook_controller.rb
def callback
event_type = “message”
output_message
res = client.reply(replyToken, output_message)
end
とりあえずメッセージが来たら、output_messageに何かを入れて、replyっていう関数使っている。
def reply(replyToken, text)
messages = [{“type” => “text”, “text” => text}]
body = {"replyToken" => replyToken , "messages" => messages}
post('/v2/bot/message/reply', body.to_json)
end
で、messagesに色々入れて、って感じ。messagesには、配列で5つまで要素を入れることができる。なので、messages = [{},{},{}]って感じで、入れていける。で、その入れる中身は、下のリンクのSend message objectって部分を参考にすれば多分大丈夫。なんかURL入れるときに、httpsじゃなかったら動かないっぽい?