【发布时间】:2019-02-23 02:47:06
【问题描述】:
我正在尝试用 nodejs 实现一个非常简单的对话流代理集成。
这是我到目前为止所做的
- 我按照Intent detection的代码
- 我将服务帐户私钥文件
.json添加到我的服务器。 - 我添加了环境变量
GOOGLE_APPLICATION_CREDENTIALS以及我的.json私钥文件的路径。
这是我现在尝试运行的代码:
require('dotenv').config()
const projectId = 'gg-chatbot-216808';
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);
// The text query request.
const request = {
session: sessionPath,
queryInput: {
text: {
text: query,
languageCode: languageCode,
},
},
};
// This prints the private key path correctly.
console.log(process.env.GOOGLE_APPLICATION_CREDENTIALS);
// Send request and log result
sessionClient
.detectIntent(request)
.then(responses => {
console.log('Detected intent');
const result = responses[0].queryResult;
console.log(` Query: ${result.queryText}`);
console.log(` Response: ${result.fulfillmentText}`);
if (result.intent) {
console.log(` Intent: ${result.intent.displayName}`);
} else {
console.log(` No intent matched.`);
}
})
.catch(err => {
console.error('ERROR:', err);
});
然后我在运行此文件时在控制台中收到此错误
Auth error:Error: invalid_user: Robot is disabled.
ERROR: { Error: 14 UNAVAILABLE: Getting metadata from plugin failed with error: invalid_user: Robot is disabled.
at Object.exports.createStatusError (/var/www/html/google_auth/node_modules/grpc/src/common.js:87:15)
at Object.onReceiveStatus (/var/www/html/google_auth/node_modules/grpc/src/client_interceptors.js:1188:28)
at InterceptingListener._callNext (/var/www/html/google_auth/node_modules/grpc/src/client_interceptors.js:564:42)
at InterceptingListener.onReceiveStatus (/var/www/html/google_auth/node_modules/grpc/src/client_interceptors.js:614:8)
at callback (/var/www/html/google_auth/node_modules/grpc/src/client_interceptors.js:841:24)
code: 14,
metadata: Metadata { _internal_repr: {} },
details: 'Getting metadata from plugin failed with error: invalid_user: Robot is disabled.' }
【问题讨论】:
-
您是否正在为代理开发 webhook?在这种情况下,请尝试使用以下 NodeJS 客户端 github.com/dialogflow/dialogflow-fulfillment-nodejs
-
这个库可能有帮助,npmjs.com/package/dialogflow-helper我在 dialogflow REST 客户端的顶部写了这个库
标签: javascript node.js api google-cloud-platform dialogflow-es