javascript - DialogFlow v2 访问 token 无法生成

标签 javascript node.js google-cloud-platform google-cloud-storage dialogflow-es

对于版本 1,这就是我过去与 DialogFlow Api 通信的方式!

fetch(configs.baseUrl + "query?v=20150910", {
    body: JSON.stringify({query: text, lang: "en", sessionId: "somerandomthing"}),
    headers: {
        'content-type': 'application/json',
        "Authorization": "Bearer " + configs.accessToken,
    },
    method: 'POST',
})
    .then(response => response.json())
    .then(data => {
        console.log(data.result.fulfillment.speech);
        return data.result.fulfillment.speech;
    })
    .catch(error => console.error(error))

我只需将访问 token 传递到 header 即可!

我不知道如何让这段代码与 DialogFlow v2 一起工作,我卡在了访问 token 上,我的 V2 代理我再也看不到访问 token 了,但我有一个项目 ID 和服务帐户。

我设法从谷歌控制台创建服务 key 并通过 gcloud 激活,但我只是不知道从哪里获取或如何生成此访问 token ,或者我是否需要一个进入 v2 的访问 token ,如果不需要,我该如何处理这个?

一个工作示例将不胜感激。

请注意,我已经下载了这个包含这些数据的文件,并在 gcloud 中使用了这个文件,它说服务已激活 smth 但然后呢? 这就是全部?接下来我应该做什么,以便对 V2 DialogFlow 进行 http 调用。

{
  "type": "service_account",
  "project_id": "xxxx",
  "private_key_id": "xxxx",
  "private_key": "-----BEGIN PRIVATE KEY-----xxxx",
  "client_email": "xxxx",
  "client_id": "xxxx",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dialogflow-client%40xxxx"
}

最佳答案

您的做法非常正确,但您可能希望使用 Dialogflows Node.js client SDK .当您实例化客户端时,这些 SDK 会自动读取身份验证 JSON 文件(请参阅 Github 上的 the example,该文件由 ... = new dialogflow.SessionsClient() 读取)。

关于javascript - DialogFlow v2 访问 token 无法生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50625189/

相关文章:

javascript - Passportjs 获取身份验证错误消息

google-cloud-platform - 谷歌云,如何重写存储桶服务的负载均衡器主机和路径,这样我就不必将我的文件嵌套在下面,例如 :/files/public?

google-cloud-platform - Google Cloud Pub/Sub 如何避免时钟偏差

javascript - Objective-J 本质上是 JavaScript 吗?

javascript - 异步函数返回 promise ,但调用函数未解析

javascript - 如何使routeParams可选

javascript - AngularJs 中的服务注入(inject)

node.js - 在 puppeteer Node.js 中获取 href 属性

events - NodeJS process.stdin `end` 事件中断 http.server 操作

google-app-engine - 数据流作业内的默认数据存储实例