今すぐ食事を取りたい時、またはある土地に詳しくない時に、インターネット上で検索すると情報量が多すぎる
登録や複雑な手続きなく気軽に使える飲食店検索ツールが欲しい
LINEのトーク上で送信された位置情報をもとに、BOTアカウントが周辺の飲食店の情報をHotpepperグルメから引用し表示する。
・Mac
コマンドラインで以下のコマンドを実行します。
$ brew install go
・Windows
公式HPより、Windows用インストーラーを選択してダウンロード+実行
インストール先フォルダは特段の理由がなければデフォルトのまま変更しなくて良いです。
コマンドラインで以下のコマンドを実行し、Goのバージョンが表示されれば問題なくインストールできています。
$ go version
go version go1.16.15 darwin/arm64
PATHに%GOPATH%\bin
を登録します。
この登録が無いとgo get
でインストールしたコマンドを実行できません。
・Mac
以下のコマンドを実行して設定します。
$ echo "export GOPATH=$(go env GOPATH)" >> ~/.bash_profile
$ echo "export PATH=$PATH:$(go env PATH)/bin" >> ~/.bash_profile
$ source ~/.bash_profile
使っているシェルがzshの場合は.bash_profile
の部分を.zshrc
に書き換えてください。
*環境変数の追加・編集などの方法はこちらが参考になります。
・Windows
以下のページを参考にしてください。
WindowsにGo言語をインストールする方法まとめ - Qiita
こちらからOSを選択してインストールします。
VSCodeを起動して、Ctrl+Shift+X
で拡張機能を開いてGo
で検索します。
検索結果に表示される以下の拡張機能をインストールします。
この拡張機能では、
作業したいディレクトリで以下のコマンドを実行します。
$ git clone https://github.com/rikako1021/Go-LineBot.git
作業ディレクトリ内にmain.goがあることを確認し、以下のコマンドで実行します。
$ go run main.go
これでサーバが立ちます。
MessagingAPIを利用するにはLINEDevelopersへの登録が必要です。
以下の公式サイトを参考に、LINEDevelopersアカウントとチャネルを作成します。
LINE Developersコンソールでチャネルを作成する
LINE Developersの各チャネルページのBasic settingsの下の方にChannel secretがあります。
LINE Developersの各チャネルページのMessaging APIの下の方にChannel access tokenがあります。
lineHandler関数の(secret),(access token)の部分にそれぞれ、上記で取得したシークレット・アクセストークンをそれぞれ追加します。
func lineHandler(w http.ResponseWriter, r *http.Request) {
//Bot初期化
bot, err := linebot.New(
"(secret)",
"(access token)",
)
if err != nil {
log.Fatal(err)
}
公式サイトの新規登録画面より、メールアドレスを入力するだけで登録できます。
登録したメールアドレス宛にAPIKEYが送信されるので、main.goのgetRestoInfo
の部分に追加します。
func getRestoInfo(lat string, lng string) []*linebot.CarouselColumn {
apikey := "(ここにAPIKEYを追加)"
HotpepperAPIとの連携はこれで完了です。
まずはHerokuのアカウントを取得します。 以下のページより必要事項を記入の上、「無料アカウント作成」をクリックしてください。
入力したメールアドレスに認証メールが届きますので、メッセージ内のリンクをクリックしてアカウントを有効化します。
最後にパスワードの設定を求められるので、任意のパスワードを設定してください。
次に、Herokuをコマンドライン上から操作するためのツールをインストールします。
デプロイにはこちらのツールが必要になります。
・Mac
ターミナル上で下記コマンドを実行します。
brew tap heroku/brew && brew install heroku
・Windows
以下のページでWindows用のインストーラが提供されているので、ダウンロードし起動します。
The Heroku CLI | Heroku Dev Center
インストール時の設定は全てデフォルトの状態で進み、install
ボタンをクリックするとインストールされます。
インストールが完了したら、CLIを起動してみます。 Macであればターミナルで、WindowsであればコマンドプロンプトやGitBashで以下のコマンドを入力します。
heroku --version
これでバージョン情報が表示されれば、Heroku CLIのインストールは完了です。
先ほど作成したアカウントでHerokuにログインします。
heroku login -i
を入力するとコマンドライン上でログインを要求されるので、メールアドレスとパスワードを入力します。
(-i
抜きで実行するとブラウザ上にHerokuのログイン画面が立ち上がり、ブラウザ上でログイン認証を行います。)
ここからは、Herokuを用いて実際にデプロイしていきます。
まずは、クローンしてきたアプリケーションのディレクトリへ移動します。
$ cd Go-LineBot
次に、heroku create
コマンドを入力すると、デプロイ用のアプリケーションが作成されます。
$ heroku create
Creating app... done, XXXX-ZZZZ-123456
https://XXXX-ZZZZ-123456.herokuapp.com/ | https://git.heroku.com/XXXX-ZZZZ-123456.git
ここで示されるXXXX-ZZZZ-123456(例)が、作成されたアプリケーション名を表しています。
指定がない場合、XXXX-ZZZZ-123456のようなランダムな名称が割り振られます。
git push heroku master
を入力すると、Heroku上へのデプロイが行われます。
$ git push heroku master
Enumerating objects: 400, done.
Counting objects: 100% (400/400), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (190/190), done.
Writing objects: 100% (400/400), 178.59 KiB | 25.51 MiB/s, done.
Total 400 (delta 152), reused 400 (delta 152)
remote: Compressing source files... done.
・
・
・
remote: https://XXXX-ZZZZ-123456.herokuapp.com/ deployed to Heroku
remote:
remote: Verifying deploy... done.
To https://git.heroku.com/XXXX-ZZZZ-123456.git
* [new branch] master -> master
これでデプロイ作業は完了です。
プログラムに変更を加え、Herokuに反映させたい場合は通常Githubにプッシュする時と同様に行います。
$ git push heroku master
デプロイした時に表示されたURL(例の場合はhttps://XXXX-ZZZZ-123456.herokuapp.com/
)にアクセスし、HelloWorldなどの画面が表示されていれば正常にデプロイが完了しています。
デプロイ先ページのURL+/callback
をLINE DevelopersのMessagingAPIの部分にあるWebhookURLとして設定します。
URLを入力後、「verify」ボタンをクリックし、success
と表示されれば正常に接続できています。
LINE Developersの各チャネルページのMessaging APIの上の方にアカウントのQRコードがあります。
QRコードを読み取ってアカウントを友達追加し、実際にメッセージを送信してみます。
トーク画面下部の「+」ボタンから位置情報を送信し、このように返信が来たらOKです。
New Issue · rikako1021/Go-LineBot
Getting Started on Heroku with Go | Heroku Dev Center