Что такое result.queryResult.fulfillmentMessages[0].text.text[0] в диалоговом потоке react-native?

Когда я следовал этому руководству: https://blog.jscrambler.com/build-a-chatbot-with-dialogflow-and-react-native/ У меня возникла ошибка в методе handleGoogleResponse(), поскольку результат.queryResult не определен. Если я отправлю сообщение от имени пользователя, ответ от Dialogflow не будет получен и возвращен пользователю.

Что означает эта строка кода в методе handleGoogleResponse()?

let text = result.queryResult.fulfillmentMessages[0].text.text[0];

Что такое result.queryResult? Что мне делать, поскольку result.queryResult не определен?

Я заметил, что как только я открываю экран чат-бота, моя консоль показывает: генерация jwt для объекта {\n электронная почта: интегрировать-диалогфлоу@mt-bot-wkgm.iam.gserviceaccount.com,\n ключ: ..... с ключом информация для моего сервисного аккаунта. Это означает, что он может прочитать мой файл env.js?

Изменить:

console.log(результат) возвращает [объект Объект]

console.log(result.responseID) возвращает значение undefined

console.log(result.queryResult) возвращает значение undefined

console.log(result.webhookStatus) возвращает неопределенное значение

console.log(result.outputAudio) возвращает значение undefined

console.log(result.outputAudioConfig) возвращает неопределенное значение

console.log(JSON.stringify(результат)) возвращает

{ошибка:{код:401,сообщение:В запросе указаны неверные учетные данные для аутентификации. Ожидаемый токен доступа OAuth 2, файл cookie для входа или другие действительные учетные данные для аутентификации. См. https://developers.google.com/identity/sign-in/web/devconsole-project.%22,%22status%22:%22UNAUTHENTICATED%22%7D%7D


person Anne Willow    schedule 05.07.2021    source источник
comment
Можете ли вы попробовать напечатать result и проверить, имеет ли оно значение? Если у него нет значения, это означает, что вы не можете правильно передать значение из своего приложения в диалоговый поток в функции onSend().   -  person Ricco D    schedule 06.07.2021
comment
@RiccoD Спасибо за ваш ответ. Когда я печатаю результат, он возвращает объект Object, но когда я печатаю result.queryResult или result.responseId, он возвращает undefined.   -  person Anne Willow    schedule 07.07.2021
comment
Поскольку он возвращает объект, вы можете продолжить отладку, проверив фактические значения в result. Проверьте как отобразить весь объект в консоли в React Native. Отредактируйте свой пост и включите содержимое объекта. Вы должны получить структуру данных, которая выглядит следующим образом: cloud.google. com/dialogflow/es/docs/reference/rest/v2/, так как серверная часть react-native-dialogflow просто вызывает dectectIntent через HTTP-запрос из API диалогового потока.   -  person Ricco D    schedule 07.07.2021
comment
@RiccoD Я отредактировал свой пост. Все значения под результатом не определены.   -  person Anne Willow    schedule 08.07.2021
comment
Вместо прямой печати вы можете выполнить console.log(JSON.stringify(result));, который является тестом, выполненным по ссылке Stackoverflow, которую я упоминал в своем предыдущем комментарии.   -  person Ricco D    schedule 08.07.2021
comment
@RiccoD Я указал свою ошибку выше, я ищу правильный способ исправить это, поскольку я делаю приложение React Native для iOS, а не веб-приложение. Я также уже создал учетную запись службы и ключ раньше.   -  person Anne Willow    schedule 08.07.2021
comment
Теперь, когда у нас есть описательная ошибка, вы можете проверить учетные данные, которые вы поместили в свой файл env.js -› dialogflowConfig. Если вы считаете, что смогли указать правильные учетные данные, и это не сработает, я предлагаю попробовать создать новую учетную запись службы и использовать ее для аутентификации и проверить, будет ли она работать.   -  person Ricco D    schedule 09.07.2021
comment
@RiccoD Я создал новую учетную запись службы, и у меня та же ошибка. Я думаю, что он может обнаружить мою учетную запись службы (я добавил к своему сообщению выше). Должен ли я делать это cloud.google.com/docs/authentication/end-user? Я читаю это, чтобы понять, должен ли я предпринять какие-либо другие шаги, кроме создания служебной учетной записи help.mypurecloud.com/articles/   -  person Anne Willow    schedule 09.07.2021
comment
По-видимому, были и другие пользователи, которые столкнулись с вашей ошибкой и опубликовали обходной путь: git проблема. Можете ли вы попробовать, если это работает и для вас?   -  person Ricco D    schedule 09.07.2021
comment
@RiccoD Прямо сейчас у меня есть конфигурация Dialogflow под componentDidMount(), но я сделал это обоими способами, представленными в этой ссылке, и столкнулся с той же ошибкой.   -  person Anne Willow    schedule 09.07.2021
comment
Я хотел, чтобы вы попробовали последний комментарий в git проблема.   -  person Ricco D    schedule 09.07.2021
comment
@RiccoD Да, я пробовал, и ошибка не изменилась.   -  person Anne Willow    schedule 11.07.2021
comment
Я понимаю. Поскольку проблема связана с используемой вами библиотекой (вероятно, поскольку она устарела, а последнее обновление было в июле 2019 г.), она не смогла идти в ногу с обновлениями Dialogflow. Я мог бы предложить либо поискать другую библиотеку, которая интегрирует Dialoglflow для React, либо использовать ссылку Dialogflow REST API и отправить HTTP-запрос напрямую.   -  person Ricco D    schedule 12.07.2021