【发布时间】:2020-04-20 13:29:15
【问题描述】:
我正在尝试验证我们的履行云功能仅由 Dialogflow 请求。
推荐的解决方案是“Verifying requests”,但在我们的例子中,我们使用的是 Dialogflow,而不是 Actions SDK:
const {dialogflow} = require('actions-on-google');
const fulfillment = dialogflow({
clientId: "clientIdDialogflow",
debug: true,
verification: "projectId"
});
fulfillment.intent("bienvenida", (conv) => { commonsDialogController.wellcomeFunction(conv) });
...etc
- 是否可以使用它来验证 Dialogflow 中的请求或仅在 Actions SDK 中可用?
-
如果在 Dialogflow 中,并且不可能使用它,我们必须检索标头并处理 JWT,但在日志中授权标头不存在。标题是:
Headers { "host": "URL.cloudfunctions.net", "user-agent": "Google-Dialogflow", "transfer-encoding": "chunked", "accept": "*/*", "accept-encoding": "gzip,deflate,br", "content-type": "application/json", "forwarded": "for=\"X.X.X.X\";proto=https", "function-execution-id": "7868dfgr656", "x-appengine-country": "ZZ", "x-appengine-default-version-hostname": "aaaaa-tp.appspot.com", "x-appengine-https": "on", "x-appengine-request-log-id": "id", "x-appengine-user-ip": "X.X.X.X", "x-cloud-trace-context": aaaaaa/aaaa=1", "x-forwarded-for": "X.X.X.X", "x-forwarded-proto": "https", "connection": "close" }响应中的错误是:
{ "status": 403, "body": { "error": "A verification header key was not found" }, "headers": { "content-type": "application/json;charset=utf-8" } }
【问题讨论】:
-
为了更好地理解:您有一个需要调用 Action SDK 的 DialogFlow 实现?并且您想应用安全性(确保调用者是 DialogFlow)?
-
是的,但在我的实现中,我们使用的是对话流,而不是 Action SDK。但是我们想使用 Action SDK 中包含的这个功能:developers.google.com/assistant/conversational/webhook/…
标签: dialogflow-es actions-on-google dialogflow-es-fulfillment