line-bot-sdk-goとngrokを使用して爆速でおうむ返しbotを作ってみました。
初めにline-bot-sdk-goとngrokとは?
LINE Messaging API SDK for Goを使用すると、LINE Messaging APIを使用してボットを簡単に開発できます。また、サンプルボットを数分で作成できます。
nglok
ローカルPC上で稼働しているネットワーク(TCP)サービスを外部公開できるサービスです。例えば、ローカルPCのWebサーバを外部公開することができます。
httpsの通信も可能になっているので、ローカル環境でline-botの稼働確認ができます。
作業手順
1.Line Developersに登録する
2.LineSDKのインストール
3.SDKのソースをLINE Developersの「Channel Secret」「アクセストークン」とngrokで指定する「ポート番号」に変更
4.ngrokのインストールと実行
5.LINE DevelopersのWebhookURLの設定
各手順の説明をします
1.Line Developersに登録
2.LineSDKのインストール
$ go get github.com/line/line-bot-sdk-go/linebot
インストールするとGOPATHで指定しているパスにインストールされる。
GOPATHの確認方法
$ echo $GOPATH
3.SDKのソースをLINE Developersの「Channel Secret」「アクセストークン」とngrokで指定する「ポート番号」に変更
/Users/HOME/go/src/github.com/line/line-bot-sdk-go/examples/echo_bot/server.goの25行目-32行目にあるシークレットキーとトークンをLine Developersで準備したアカウントの情報に変更する。
修正前:
func main() {
bot, err := linebot.New(
os.Getenv("CHANNEL_SECRET"),
os.Getenv("CHANNEL_TOKEN"),
)
if err != nil {
log.Fatal(err)
}
修正後:
func main() {
bot, err := linebot.New(
"6------------------d", // Channel Secret
"To-----------------=", // アクセストークン(ロングターム)
)
if err != nil {
log.Fatal(err)
}
58行目のポートの指定をngrokで指定する想定のポートに変更する。
修正前:
// This is just sample code.
// For actual use, you must support HTTPS by using `ListenAndServeTLS`, a reverse proxy or something else.
if err := http.ListenAndServe(":"+os.Getenv("PORT"), nil); err != nil {
log.Fatal(err)
}
修正後:
// This is just sample code.
// For actual use, you must support HTTPS by using `ListenAndServeTLS`, a reverse proxy or something else.
if err := http.ListenAndServe(":8080", nil); err != nil {
log.Fatal(err)
}
goファイルの実行
$ go run server.go
4.ngrokのインストール
$ brew install ngrok
上記コマンドでエラーとなる場合
$ brew cask install ngrok
ngrokの実行
$ ngrok http 8080
ngrok by @inconshreveable (Ctrl+C to quit)
Session Status online
Session Expires 7 hours, 59 minutes
Version 2.3.29
Region United States (us)
Web Interface http://127.0.0.1:4040
Forwarding http://f29d8728.ngrok.io -> http://localhost:8080
Forwarding https://f29d8728.ngrok.io -> http://localhost:8080
Connections ttl opn rt1 rt5 p50 p90
0 0 0.00 0.00 0.00 0.00
5.LINE DevelopersのWebhookURLの設定
LINE DevelopersのWebhookURLにngrokを起動した際に作成されたhttps://f29d8728.ngrok.io/callback
を指定する。このときURLに/callback
の指定が漏れないようにすること。
Webhook送信は「利用する」にすること。
完成
これでline-botの完成です!作ったアカウントを友達登録してお手持ちのスマートフォンからトークを送ってください。
まとめ
既に出ている色々な記事を参考にさせていただいて実装しました。この投稿が誰かの役にたてば嬉しいです。