может кто-нибудь мне помочь. Я разрабатываю некоторый диалоги API Api Logi c в nodejs, и я хочу создать пост-операцию createIntent для создания простого намерения / ответа по умолчанию для бота. В конце концов, я хочу добавить пост-операцию из пользовательского веб-интерфейса, чтобы кормить бота вопросами и ответами.
Кажется, я не могу заставить запрос работать, я думаю, что это индикатор учетных данных Google, вот фрагмент сообщения.
https://googleapis.dev/nodejs/dialogflow/latest/v2beta1.IntentsClient.html#createIntent
const config = {
dialogFlowSessionLanguageCode: 'en-US',
googleProjectID: 'gmailwhatever-xwwytd',
googleClientEmail: 'gmailwhatever@gmail-xxwftd.iam.gserviceaccount.com',
googlePrivateKey:"-----BEGIN PRIVATE KEY-----\\nMIIEvSZqoF5a\\njTV.....rj65mBQ=\\n-----END PRIVATE KEY-----\\n",
}
const email = 'gmailaccount@gmail.com' //the mail which I use for signup/loggin to the dialogflow console/service
const optionsPath = {
credentials: {client_email: config.googleClientEmail, private_key: config.googlePrivateKey}, email
};
const languageCode = config.dialogFlowSessionLanguageCode;
const client = new dialogflow.v2.IntentsClient(optionsPath);
const agentPath = client.projectAgentPath(config.googleProjectID);
router.post('/createIntent', async (req, res) => {
const trainingPhrases = [{type:0, parts: [{text: req.body.question}]}];
const request = {
parent: agentPath,
intent: {
trainingPhrases,
name: req.body.name,
displayName: req.body.displayName,
messages: [{text: [req.body.answerMe]}],
},
languageCode,
};
// Send request and log resulz
console.log('lets see the request', request);
const responses = await client.createIntent(request);
console.log('intent created');
console.log(responses);
const result = responses[0].queryResult;
console.log(` Query: ${result.queryText}`);
console.log(` Response: ${result.fulfillmentText}`);
res.send(result)
})```
///http://localhost:5000/api/dialogflow/createIntent (post)
///this is the a snippet of payload i'm trying to pass/send to/from postman (body raw json)
{
"name": "askAboutWhatever",
"displayName": "askAboutQuestionWhatever",
"question": "Can I add a question?",
"answerMe": "Yes you can add a question, so I can learn more"
}```
//I think construction of the payload is ok but i think i'm missing some/having wrong credentials.
//I get this error what does it mean?
///Auth error:Error: error:0909006C:PEM routines:get_name:no start line
///(node:44077) UnhandledPromiseRejectionWarning: Error: 14 UNAVAILABLE: Getting metadata from ///plugin failed with error: error:0909006C:PEM routines:get_name:no start line