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

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

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

さて、LINE botの続きです。

前回はLINEのデフォルトのbot機能を使えるようにするまででした。

 

今回はいよいよLINE bot作成して、Webサーバにあげるまでを書きます。

 注:今更ですが、この記事は初心者向けです。私自身が初心者なので。

   知識のある人にとってはクドイと思うので、適当に読み飛ばしてください。

 

 

f:id:beethovenmendelssohn:20170410213012j:plain

 

 

LINE botの作り方をググるとですね...

①「LINE-bot-SDK」を「gitのリポジトリ」から「clone」

②「STSでpomとapplicationpropertiesを編集して」「./ngrok」で動作確認。

③「heroku」に「deploy」して完成!

ってやれば簡単!

という記事が沢山あります。

どうも皆さん簡単にできている様子。

 

が、こっちは初心者過ぎて、それ何語ですか?っていう状態

なわけですよ。

調べたやり方にでてくる未知の単語をいちいち調べたら、その先でまた新しい未知の単語に出会うという地獄。。

 

そんなこんなで、調べた結果を超噛み砕いて書くと、

①「LINE botのテンプレ」を「なんかネット上にある元データ」から「コピって

②「編集ツールでちょい編集して」「手元のPCを外部公開できるやつ」で動作確認。

③「無料のWebサーバに「使える状態でおいて」完成!

 ということです。

 注:乱暴で正確性に欠くかもしれません。

   正確な情報を知りたい方は、もっとプロの書いたページを参照しましょう。

 

0.下準備

開発環境として、

 ・MAC OS Sierra 10.12.4

 ・JAVA + SpringTootSuite

を使いました。

 

MACはいいですね。私のPCがMACというだけ。

SpringToolSuiteは、JAVAを書く上で便利機能が色々使える開発環境です。

下記など参照しつつ、セットアップしましょう。

ちなみに、私はGradleは使わなかったので、、リンク先の後半は無視しました。

qiita.com

それと、前回使ったLINEのデフォルトのbot機能(自動応答)はオフにしておきましょう。

 

f:id:beethovenmendelssohn:20170410202847p:plain

 

Webhook送信を「利用する」、自動応答メッセージを「利用しない」です。

これで一応下準備はOK。

 

1.LINE-botアプリを起動する。

とりあえず、STS(SpringToolSuite)を起動。

ファイル→新規→Springスターター・プロジェクト

でプロジェクトを作る。

名前などはなんでも大丈夫です。

 

こんな感じで空のプロジェクトができますね。

f:id:beethovenmendelssohn:20170410203828p:plain

 

ここからbot実行するまで3ステップです。

(1) メインとなるjavaを書く(というかコピる)

(2) 設定ファイルを更新

(3) aprication propertitiesを設定。

 

(1)雑にLINE-bot-SDK-javaの内容をコピります。

gitとか使えば良かったらしいですが、よくわかってなかったので、

とりあえずそのままベラっと。

f:id:beethovenmendelssohn:20170410204443p:plain

めちゃエラーでますが、今は無視。

 

(2)次に、pom.xmlファイルというやつのdependeciesに下記のようにLINE関係を4つ追加します。これでLINE関係のclassなどを使えるようになります。

  ※pom=Project Object Modelの略です。

     「こんな定義ファイル使うよ!」の宣言くらいに思ってます。

f:id:beethovenmendelssohn:20170410204605p:plain

 

(3)次に、aprication propertiesという部分に、

「channelToken」と「channelSecret」というやつを設定します。

「(今書いてるアプリは)このLINE botアカウントから呼び出されるんだよ!」ということを指定する部分ですね。

 

f:id:beethovenmendelssohn:20170410213908j:plain

 

「channelToken」と「channelSecret」はどこで確認できるかというと、

LINE developersの設定するbotのページにありますので、ここの値をコピりましょう。

 

f:id:beethovenmendelssohn:20170410214117j:plain

 

これでほぼ準備OK。

 

一応プロジェクトを上書き保存

→パッケージエクスプローラで該当プロジェクト右クリック

 →「Maven」の中の「プロジェクトの更新」

 →同じく右クリックから、リフレッシュ

しましょう。一応ね。

 

順調なら、これでエラーがなくなっているはず。

(コピーしたままだどclass名を直せと言われるかもしれませんが、その場合は指示に従って直しましょう。

f:id:beethovenmendelssohn:20170410210829p:plain

 

これでアプリケーションができました。

「Springbootアプリケーション」として実行しましょう。

エラーが出ずに起動できればOK。

 

2.ngrokで試しに使ってみる。

ものとしては出来たので、これにアクセスしてみます。

ngrokという、自分のPCを外部公開してアプリ等のテストに使えるやつを使います。

 

このページを参考にngrokを導入しました。

liginc.co.jp

 

ターミナルからngrokを起動します。

 ngrok http 8080

すると、https〜というURLが表示されます。

これをコピーし、今度はLINE側に「このURLにアクセスしてね」と設定します。

f:id:beethovenmendelssohn:20170410212016p:plain

 上で確認したchannelSecretのすぐ上にある、「Webhook URL」に設定すればOK。

最後に「/callback」とおまじないをつけるのがルールです。

設定したら「VERIFY」ボタンを押してみましょう。

うまく言っていれば、Successと表示されるはず。

 

これで一通り終了!!

では試してみよう!

f:id:beethovenmendelssohn:20170410212741p:plain

出来たー。

単純にこちらが入力した内容をそのまま返してくれる、オウム返しbotの完成です。

慣れてる人は、こんなの一瞬らしいですね。

私がそのレベルに行けるのはいつの日か。。。

 

 

今回は長くなったのでここまで。

heroku(Webサーバ)上で動かす部分は次回に続きます。

 

 

ちなみに、私の記事よりこちらのほうが遥かにスマートに紹介されてます。

(大いに参考にさせていただきました。

kikutaro777.hatenablog.com