dialogflow webhook in go



我正在按照这个网站上的步骤进行操作,但是当我尝试推动Heroku并使用Dialogflow Fulfillment连接到它时,我的网站页面总是说404 not found

heroku日志总是显示这一点:

2020-01-17T15:53:17.864991+00:00 heroku[router]: at=error code=H10 desc="App crashed" 
method=POST path="/webhook" host=herokugit-test.herokuapp.com request_id=bfed8942-7009-474c-a67c-b84b5e79a94f fwd="64.233.172.43" dyno= connect= service= status=503 bytes= 
protocol=https

这是代码:

package main
import (
"fmt"
"net/http"
"github.com/gin-gonic/gin"
"github.com/golang/protobuf/jsonpb"
"github.com/sirupsen/logrus"
"google.golang.org/genproto/googleapis/cloud/dialogflow/v2"
)
func handleWebhook(c *gin.Context) {
var err error
wr := dialogflow.WebhookRequest{}
if err = jsonpb.Unmarshal(c.Request.Body, &wr); err != nil {
logrus.WithError(err).Error("Couldn't Unmarshal request to jsonpb")
c.Status(http.StatusBadRequest)
return
}
fmt.Println(wr.GetQueryResult().GetOutputContexts())
}
func main() {
var err error
r := gin.Default()
r.POST("/webhook", handleWebhook)
if err = r.Run("127.0.0.1:8080"); err != nil {
logrus.WithError(err).Fatal("Couldn't start server")
}
}

如何解决? 以及如何在我的网站页面上显示正确的WebhookRequest

非常感谢你帮助我。

我认为您应该从 Heroku 运行时获取端口

var port = os.Getenv("PORT")

看起来它是硬编码的。

最新更新