読者です 読者をやめる 読者になる 読者になる

おあそび ぷろぐらみんぐ 日記

プログラミング初心者のおあそびと勉強の記録です。

LINE bot作ってみた詳細③〜LINE bot自作(2/2)

 

さて、LINE botのシリーズの続きです。

前回の記事では、とりあえずLINE botを作成して、自分のPC上で動かすまでを書きました。

 

今回は、作成したbotをherokuで公開するまです。

 注:この記事は初心者向けです。
   知識のある人にとってはクドイと思うので、適当に読み飛ばしてください。

f:id:beethovenmendelssohn:20170413000616j:plain

 

 

heroku=無料で使えるWebサーバです。

 

botをいつでも誰にでも使ってもらうには、いつでもインターネット上からアクセスできる場所にbotを置いておく必要があります。自分のPCで動かしっぱなしにするわけには行かないですしね。

 

Webサーバならば、bluemixでも、AWSでもなんでも良いのですが、無料で使える中で最もメジャー(?)っぽかったので、herokuを使いました。

 

・herokuを使えるようにする。

herokuのトップページから、アカウントを作成しましょう。

右上のSgn upから、画面遷移に従っていけばOKです。

 

次に、こちらからherokuのCLIを使えるようにします。

これも書いてあるとおりですので、全く問題ないかと思います。

 

・herokuにアプリをデプロイする。

アカウントができたら、さっそく前回作ったアプリをデプロイしましょう。

 ※デプロイ=アプリケーションをサーバにあげて、一般に利用できる状態にすること

 

(1)heroku上に新規アプリを作成。

(2)作ったheroku上のアプリに、前回作成したソースをアップする。

という順に進みます。

 

 

(1)heroku上に新規アプリを作成

先程インストールしたheoku CLIからでも作成できるのですが、ここではherokuのWeb site上から作成する方法で記載します。

f:id:beethovenmendelssohn:20170412230314p:plain

Create New Appをクリック。

 

f:id:beethovenmendelssohn:20170412230446p:plain

アプリの名前をつけて、Create App。

Runtime SelectionはとりあえずそのままでOK。

 

これでアプリ自体はできました。

簡単ですね。

 

(2)作ったheroku上のアプリに、前回作成したソースをアップする。

上の順でアプリを作成すると、下記の画面(アプリケーションの中のDeplyタブ)

になっていると思います。

f:id:beethovenmendelssohn:20170413000410p:plain

 

画面を下にスクロールすると、Herok CLIでアプリをデプロイする方法が書いてあります。

 これに従いましょう。

f:id:beethovenmendelssohn:20170412230857p:plain

 アプリ名なんかも書いてあるので、ほんとにコピペしていくだけでOK。

「cd my-project/」の「my-project/」を、前回作成したアプリの保存フォルダ名に変更するくらいですね。

 

「git push heroku master」まで実施して、無事完了。

渡しの場合はすんなりうまくいきましたが、、ググっていると途中でエラーが出ることもある模様。

エラーメッセージでググりながら対応しましょう。

 

これでherokuにデプロイできました。

 

・LINE botの設定を変更する。

最後に、LINE bot側でアクセス先のURLを変更します。

 

作ったアプリのSettingタブに行きます。

f:id:beethovenmendelssohn:20170412233845p:plain

 

中段くらいの「Domain」にあるURLをコピー。

f:id:beethovenmendelssohn:20170412234019p:plain

 

LINE developersのWebhook URLに貼り付け。最後に/callbackのおまじないはつける。

f:id:beethovenmendelssohn:20170412233541p:plain

VERIFYを押して、Successと出ればOK!!

 

デプロイ完了です!!!

 

・地味にはまったこと

こう書くとめちゃ簡単そうなんですけどね、1箇所、めちゃめちゃはまりました。

LINE bot herokuとかで調べてると、

「herokuに固定IPを設定して、LINE側にWhitelistとして登録する必要がある」

という情報が複数のサイトで出てきまして。

 

で、herokuで固定IPをとるには、Fixieというアドインを使えばいいそうで、

ググりながらやったんですけどね。。

このあたりが何故かうまく行かず。。いまだに原因不明です。。。

 

Wthitelist設定の画面

f:id:beethovenmendelssohn:20170412235412p:plain

 もうだいぶ悩んだんですが、

結局、IP White listも固定IPも設定しないで動かしたら成功しました。

これに気づくまでしばらくかかった。。

なにかの条件等を私が見落としてるんでしょうね。。

 

さて、これでLINE botがWeb上で動くようになりました。

次回は、LINE bot 本体から少しだけ離れて、

botの返答に使うデータベース、MySQLについて書きます。