gpt4 book ai didi

node.js - 如何使用 gcloud 凭据对 Dialogflow API 进行身份验证

转载 作者:搜寻专家 更新时间:2023-11-01 00:11:30 24 4
gpt4 key购买 nike

我有一个向 Dialogflow 代理发出请求的 Node JS 应用。我实际上使用了基于时间 token 的请求,但我如何更改它以通过谷歌服务凭据来做到这一点? (https://cloud.google.com/docs/authentication/getting-started)。我创建了一个凭据(添加了账单)和 service_account json 文件。

我想在 Node ( https://www.npmjs.com/package/dialogflow ) 中使用 Dialogflow 包,但我不明白如何将它与 json 文件一起使用。

const projectId = 'ENTER_PROJECT_ID_HERE'; 
const sessionId = 'quickstart-session-id';
const query = 'hello';
const languageCode = 'en-US';

// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');
const sessionClient = new dialogflow.SessionsClient();

// Define session path
const sessionPath = sessionClient.sessionPath(projectId, sessionId);

包的示例使用项目 ID 和 session ID,但不像谷歌服务示例那样使用 json 文件(或使用像 How to authenticate with gcloud big query using a json credentials file? 这样的大查询)。不管怎样,我在哪里可以获得这个项目和 session ID?

拜托,如果有人可以帮助我或指导如何以更好的方式做到这一点?谢谢

最佳答案

首先,您必须创建一个服务帐户并在您的本地系统上下载一个 .JSON 格式的凭据文件。现在,可以通过三种方式在 dialogflow 库中使用该凭据进行身份验证/授权。

  • 方法一

    创建一个环境变量 GOOGLE_APPLICATION_CREDENTIALS,它的值应该是该 JSON 凭据文件的绝对路径。通过这种方法,谷歌库将隐式加载该文件并使用该凭据进行身份验证。我们不需要在与此凭据文件相关的代码中执行任何操作。

    export GOOGLE_APPLICATION_CREDENTIALS="<absolute-path-of-json-file>" # for UNIX,LINUX
    # then run your code, google library will pick credentials file and loads it automatically
  • 方法二

    假设您知道 JSON 文件的绝对路径,并将其作为值放在 credentials_file_path 变量的下面片段中。

    // You can find your project ID in your Dialogflow agent settings
    const projectId = '<project-id-here>';
    const sessionId = '<put-chat-session-id-here>';
    // const sessionid = 'fa2d5904-a751-40e0-a878-d622fa8d65d9'
    const query = 'hi';
    const languageCode = 'en-US';
    const credentials_file_path = '<absolute-file-path-of-JSON-file>';

    // Instantiate a DialogFlow client.
    const dialogflow = require('dialogflow');

    const sessionClient = new dialogflow.SessionsClient({
    projectId,
    keyFilename: credentials_file_path,
    });

  • 方法三

    您可以记下 JSON 中的 project_idclient_emailprivate_key,在您的代码中明确使用它们进行身份验证。

// You can find your project ID in your Dialogflow agent settings
const projectId = '<project-id-here>';
const sessionId = '<put-chat-session-id-here>';
// const sessionid = 'fa2d5904-a751-40e0-a878-d622fa8d65d9'
const query = 'hi';
const languageCode = 'en-US';
const credentials = {
client_email: '<client-email-here>',
private_key:
'<private-key-here>',
};
// Instantiate a DialogFlow client.
const dialogflow = require('dialogflow');

const sessionClient = new dialogflow.SessionsClient({
projectId,
credentials,
});

关于node.js - 如何使用 gcloud 凭据对 Dialogflow API 进行身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50355556/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com