LoginSignup
13
17

More than 5 years have passed since last update.

【超初心者向け】LINE Botの簡単な作り方(Heroku,Cloud9)

Last updated at Posted at 2017-01-29

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っとか)上でプログラムが書けるサービスに登録する。

Cloud9

Create a new workspace>Public>Rubyとか

並行して、Herokuに登録しておく。Cloud9で書いたプログラムを、Herokuに設置するイメージ。Herokuはプログラムを設置する場所的なもの。LINE Botにメッセージを送ると、Herokuにアクセスがいって、Herokuに置いてあるコードが実行される流れになる。

少し古いが参考にした記事。とりあえず、一番上のオウム返しBotと、注意点の記事をコピペしまくったら、Railsとかよくわからないけどいけた。

プログラムを送ったりログを見たりする場所(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っていう関数使っている。

line_client.rb
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じゃなかったら動かないっぽい?

API Reference

13
17
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
13
17