Shinya Furumata's Blog

フロントエンドエンジニアの開発ブログです。直近は主にgulpについて書いていくと思いますー。

【 LINE BOT】無料で公開するまでのチュートリアル ( sinatra + heroku )

LINEのBOT APIが無償提供

https://business.line.me/services/products/4/introduction

最近、1万人限定でLINEから「BOT API Trial Account」が無償提供されました。
それと同時にLINE BOTに関する記事が続々と出てきていますが、気をつけないといけないところなどがあったので、備忘録として残しておきます。

参考記事

qiita.com

qiita.com

このあたりを参考にして、進めていきました。
本当にありがたいです。

LINEのdeveloperアカウントを作成する

https://business.line.me/services/products/4/introduction

先ほども紹介した上記サイトから、利用開始を選択します。
案内に沿って進めていけば、LINE BOTが作れます。
Basic infomation」が見れるところまでいったら、いったんOKです。

sinatraアプリを作る

続いてsinatraアプリを作りましょう。

一応。
dotinstall.com


Gemfileはこんな感じ。

source "https://rubygems.org"

gem 'sinatra'
gem 'rest-client'

config.ruファイルはこんな感じです。

require 'bundler/setup'
require 'sinatra/base'
require 'json'
require 'rest-client'

class App < Sinatra::Base
  post '/callback' do
    params = JSON.parse(request.body.read)

    params['result'].each do |msg|
      request_content = {
        to: [msg['content']['from']],
        toChannel: 1383378250, # Fixed  value
        eventType: "138311608800106203", # Fixed value
        content: msg['content']
      }

      endpoint_uri = 'https://trialbot-api.line.me/v1/events'
      content_json = request_content.to_json

      RestClient.proxy = ENV["FIXIE_URL"]
      RestClient.post(endpoint_uri, content_json, {
        'Content-Type' => 'application/json; charset=UTF-8',
        'X-Line-ChannelID' => ENV["LINE_CHANNEL_ID"],
        'X-Line-ChannelSecret' => ENV["LINE_CHANNEL_SECRET"],
        'X-Line-Trusted-User-With-ACL' => ENV["LINE_CHANNEL_MID"],
      })
    end

    "OK"
  end
end

run App

ほぼ参考記事のソースコードを使わせて頂きました。

herokuで公開

次にherokuでこのappを公開していきます。

一応。
dotinstall.com

使ったことない人いたら、これとかみて感覚つかんでもらえれば。
流れに沿ってheroku appを作っていきます。

$ heroku addons:create fixie:tricycle

続けてコマンドラインから上記コマンドを入力します。

「Your IP addresses are」のあとにIPアドレスが2つ発行されるので、メモしておいてください。
※あとから、herokuの管理画面で確認することも可能です。

LINE developersの設定, 環境変数の設定*

ここまで終わったら、再びLINE developersの画面に戻り、諸々設定していきます。
注意点がいくつかあるので、おさえておきましょう。

まずは「Basic infomation」画面から、

  • Channel ID
  • Channel Secret
  • MID

を確認しましょう。

qiita.com

config.ruの変数名と見合わせながら、各項目を登録していきます。
※FIXIE_URLはすでに定義されています。

次に「Basic infomation」の中身を編集していきます。
「Callback URL」をお使いの環境に合わせて入力するのですが、ポート番号の:443をつけなければいけません。
なので、入力するURLは

https://hogehoge.com:443/callback

というようになります。「hogehoge.com」にはherokuで作ったappのURLを入力してください。

最後は、左上のメニューから「Server IP Whitelist」を設定していきましょう。
先ほどメモしたIPアドレスを2つ入力してください。

これで準備は完了です!
QRコードから友達登録して、話かけてみましょう!

github.com

githubにもあげておきます。
これから色々いじっていきたいと思います〜。