LINE Botの開発に初めて挑戦してみました。
まずは簡単なモノから、ということでおうむ返しのLINE Botです。
「認識が違う」などの指摘がございましたら、教えていただけますと幸いです。
Sinatraを使って LINE Botを作ってみる
Heroku+Ruby+SinatraでReplyにオウム返しするLineBotを作った
大枠はこちらの記事に沿ってやっていきました.
最後までいったものの、**「返事が返ってこない」**という状況になったのでその解決方法をメモとして残しておきます.
「返事が返ってこない」ことに対しての原因/やったこと
原因1:コード内に直接、トークンやチャンネルシークレットを入力していた
LINE BotのSDKの中にこういった↓コードがあるのですが、僕は直接控えたTOKENなどを入力してしまっていました。
これは間違いで、Herokuの[Config Vars]で環境変数として設定するので、これはこのままで大丈夫でした。
# app.rb
require 'sinatra'
require 'line/bot'
def client
@client ||= Line::Bot::Client.new { |config|
# 以下3つに控えたID,SECRET,TOKENを入力していた.これはこのままでOK!
config.channel_id = ENV["LINE_CHANNEL_ID"]
config.channel_secret = ENV["LINE_CHANNEL_SECRET"]
config.channel_token = ENV["LINE_CHANNEL_TOKEN"]
}
end
↓↓Herokuの設定画面↓↓
ここでID, SECRET, TOKENを設定します
原因2:ローカルの変更をHerokuにpush(反映)していなかった
原因1を修正するために、ローカルでコードを変更しました。
その変更はローカルで変更しただけなので、Herokuにはその変更が反映されていませんでした。
よくみたらHerokunにもこんな記述がありました。
以下のコマンドを実行してHerokuにpush
Deploy your changes
Make some changes to the code you just cloned and deploy them to Heroku using Git.
$ git add .
$ git commit -am "make it better"
$ git push heroku master
この2つを試すと、無事に返ってくるようになりました。
無事、完成
完成したけど、まだわからないこと
Herokuのadd onであるFixieは必要なのか??
試行錯誤する中で、以下の記事を見つけました。
記事を見てFixieを入れてみたものの、削除しても動いてるのでもうちょっと調べて行こうと思います。