質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

Q&A

解決済

1回答

314閲覧

HerokuとGoでLINEの Messaging API環境を作成しています。

raspypy

総合スコア247

LINE Messaging API

LINE Messaging APIは、メッセージの送信・返信ができるAPIです。Web APIを経由しアプリケーションサーバとLINEのAPIでやり取りが可能。複数のメッセージタイプや分かりやすいAPIリファレンスを持ち、グループチャットにも対応しています。

Go

Go(golang)は、Googleで開発されたオープンソースのプログラミング言語です。

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

1グッド

0クリップ

投稿2019/03/07 23:29

実現したいこと

LINE BOTをHerokuとgoで作成したいと考えています。
Herokuとgoの勉強のためにLINE BOTの作成を行っています。

今の状態

Goで作成したLINE BOTプログラムをHerokuにデプロイ完了しました。
デプロイ完了後、herokuのプロセスを確認すると、次の通りとなっています。

html

1$ heroku ps 2Free dyno hours quota remaining this month: 1000h 0m (100%) 3Free dyno usage for this app: 0h 0m (0%) 4For more information on dyno sleeping and how to upgrade, see: 5https://devcenter.heroku.com/articles/dyno-sleeping 6 7=== web (Free): go-getting-started (1) 8web.1: up 2019/03/07 20:38:09 +0900 (~ 4m ago)

##LINE Messaging APIの設定は次の通りです。
◆Webhook送信: 利用する
◆Webhook URL: https://appliname.herokuapp.com:443/callback
⇒接続テストもOKでした。
◆Botのグループトーク設定: 利用する
◆自動応答メッセージ: 利用しない
◆友達追加時あいさつ: 利用する

#解決したいこと
デプロイが完了したので、早速LINEで友達追加したBOTにメッセージを送ってみました。
しかし、おうむ返しが返信されてきません。
おうむ返しが返信されるようにしたいのですが、Messaging APIの設定が悪いのか、goプログラムが悪いのか、
それとも、他の何かが原因なのかが分かりません。
どなた助けていただけると助かります。

#goプログラム
"CHANNEL_SECRET"と"CHANNEL_TOKEN"は、herokuの環境変数に登録してあります。

html

1package main 2 3import ( 4 "log" 5 "net/http" 6 "os" 7 8 "github.com/gin-gonic/gin" 9 "github.com/line/line-bot-sdk-go/linebot" 10) 11 12func main() { 13 port := os.Getenv("PORT") 14 15 if port == "" { 16 log.Fatal("$PORT must be set") 17 } 18 19 20 bot, err := linebot.New( 21 os.Getenv("CHANNEL_SECRET"), 22 os.Getenv("CHANNEL_TOKEN"), 23 ) 24 if err != nil { 25 log.Fatal(err) 26 } 27 28 router := gin.New() 29 router.Use(gin.Logger()) 30 router.LoadHTMLGlob("templates/*.tmpl.html") 31 router.Static("/static", "static") 32 33 router.GET("/", func(c *gin.Context) { 34 c.HTML(http.StatusOK, "index.tmpl.html", nil) 35 }) 36 37 38 router.POST("/callback", func(c *gin.Context) { 39 events, err := bot.ParseRequest(c.Request) 40 if err != nil { 41 if err == linebot.ErrInvalidSignature { 42 log.Print(err) 43 } 44 return 45 } 46 for _, event := range events { 47 if event.Type == linebot.EventTypeMessage { 48 switch message := event.Message.(type) { 49 case *linebot.TextMessage: 50 if _, err = bot.ReplyMessage(event.ReplyToken, linebot.NewTextMessage(message.Text)).Do(); err != nil { 51 log.Print(err) 52 } 53 } 54 } 55 } 56 }) 57 58 router.Run(":" + port) 59}
Blur👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yoorwm

2019/03/08 01:01

メッセージに書いてある通りではないでしょうか? フリープランで動かしている訳ですよね?
raspypy

2019/03/08 01:34

私の理解が間違えていたらすみません。 Freeで動かしていますが、↓のメッセージの解釈は、 今月1000h残っている。 作成したアプリでの利用は、0h0min と解釈しています。 昨日アプリをherokuにデプロイしたばかりなので、使用0h0minと解釈しています。 私の解釈が間違えていますでしょうか。 Free dyno hours quota remaining this month: 1000h 0m (100%) Free dyno usage for this app: 0h 0m (0%)
yoorwm

2019/03/08 01:40

あー、すいません。確かにそんな感じっぽいですね。 となると、ログを調べてみない事にはなんとも言えないのでは?
raspypy

2019/03/08 01:44

いえいえ。とんでもありません。 ログを調べてみます。
guest

回答1

0

自己解決

再度デプロイし直して解決することができました。

投稿2019/03/13 02:27

raspypy

総合スコア247

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問