Google Actions - декодирование UTF-8 при использовании AWS API Gateway

Я работаю над своим первым действием в Google, и у меня головная боль, пытаясь понять, как отображать символы Юникода в моей основной карточке и устном тексте.

Например, «Бейонсе» в симуляторе и на моем телефоне отображается как «Бейонсе».

Данные поступают из моего шлюза API Amazon, который возвращает результат моей лямбды. Журнал здесь показывает правильный формат, поэтому я думаю, что мое действие настроено неправильно?

Интересно, что смайлы тоже не отображаются (жестко запрограммированные в той же лямбде). Следуя этому руководству https://developers.google.com/actions/assistant/responses#rich-responses, значит, мне не хватает какой-то конфигурации?

В моей настройке DialogFlow Fulfillment для Webhook я установил кодировку UTF-8, а Content-Type - application / json

Есть что еще настроить?


person jewkesy    schedule 22.08.2018    source источник
comment
Привет, @jewkesy, ты нашел решение этой проблемы?   -  person Quentin Del    schedule 07.11.2018
comment
Привет, @QuentinDel, пока нет. В настоящее время общаясь с поддержкой DialogFlow по этому поводу, они посоветовали мне выяснить, почему в заголовках ответов нет charset = UTF-8 в типе содержимого, хотя он отправляется по запросу. В настоящее время просматриваю документацию AWS, чтобы понять, где требуется дальнейшая конфигурация и как ее правильно применить   -  person jewkesy    schedule 07.11.2018
comment
@jewkesy вы уже нашли решение? У меня такая же проблема?   -  person Antonio Cucciniello    schedule 23.04.2019
comment
@AntonioCucciniello, ага - только что обновил пост!   -  person jewkesy    schedule 23.04.2019


Ответы (1)


Мое решение состояло в том, чтобы добавить дополнительные параметры конфигурации в мой AWS API Gateway. Похоже, что DialogFlow v2 больше не предполагает (или по умолчанию?) Кодировку utf-8 для ответа веб-ловушки.

Просто добавьте content-type: application/json; charset=UTF-8 в заголовок ответа вашего метода, а не полагайтесь на то, что это значение сохраняется из заголовка запроса.

Настройка содержания ответа метода

person jewkesy    schedule 23.04.2019
comment
рад слышать, что это исправлено! это то, что вы делаете в API Gateway? или в вашем коде? Также, если бы вы могли привести пример, который бы помог! - person Antonio Cucciniello; 23.04.2019
comment
@AntonioCucciniello Конечно! Добавлен снимок экрана, показывающий, где нужно применить настройку в API Gateway. - person jewkesy; 24.04.2019
comment
отлично поработал. точная строка - pplication / json; charset = UTF-8 - person JoshHighland; 31.03.2021