Действия Sdk получают эту ошибку TypeError: Невозможно прочитать свойство 'output' из неопределенного - PullRequest
0 голосов
/ 01 ноября 2018

Я пытаюсь соединить IBM Watson и Google Assistant, но продолжаю получать эту ошибку «Ошибка типа: невозможно прочитать свойство« вывод »неопределенного» и это «Выполнение функции заняло 3323 мс, завершено со статусом:« сбой »»

Это мой код:

const {actionssdk} = require('actions-on-google');
const functions = require('firebase-functions');

const app = actionssdk({debug: true});

app.intent('actions.intent.MAIN', (conv) => {
    conv.ask('Olá, como posso lhe ajudar?');
});


app.intent('actions.intent.TEXT', (conv, input) => {
    var AssistantV1 = require('watson-developer-cloud/assistant/v1');
    var assistant = new AssistantV1({
        username: '###################################',
        password: '###################################',
        url: '###################################',
        version: '2018-07-10'
    });
    conv.ask("eeeeeeeeeeeeeeeee");
    return new Promise( (resolve, reject) => {
        assistant.message(
        {
          workspace_id: '###################################',
            input: { text: input },
            headers: {'Content-Type':'application/json'}
        },
        function(err, response) {
            conv.ask(response.output.text[0]);
            resolve();
        }
        );
     })
});
exports.dialogflowFirebaseFulfillment = functions.https.onRequest(app);

Ответы [ 2 ]

0 голосов
/ 01 ноября 2018

Ваш response объект является нулевым. Убедитесь, что он не равен нулю, прежде чем использовать его:

let speech;
if (response !== null) {
    speech = response.output.text[0];
}
else{
    speech = "I'm sorry, there was an error and I'm unable to answer";
}
conv.ask(speech);
0 голосов
/ 01 ноября 2018

Ребека, просто чтобы добавить информацию, вы пытаетесь добавить исходящий доступ, но вам необходимо настроить свою учетную запись для этого.

"Платежная учетная запись не настроена. Внешняя сеть недоступна и квоты строго ограничены. Настройте платежный аккаунт для удаления эти ограничения "

Если вы хотите вызвать какой-нибудь API (IBM Watson, как подтверждено), вам нужно включить биллинг.

Для других квот, , посмотрите цены - как вы можете видеть, есть ограничения на количество вызовов с использованием бесплатного уровня.

...