Я создаю небольшого Dialogflow-Chatbot, который предполагается использовать в Google Assistant. Суть в том, что он должен отправлять .mp3-файлы (> 120 с), которые находятся на моем частном сервере, как MediaResponse для определенных команд.
Для этого я настроил свой сервер как выполнение для этих команд, который должен отправить MediaResponse. На данный момент Backend написан в Python и отправляет чистые JSON -файлы. Я использую пример из https://developers.google.com/assistant/conversational/responses#df_json_media_response:
SAMPLE_PAYLOAD_JSON = {
"payload": {
"google": {
"richResponse": {
"items": [
{
"simpleResponse": {
"textToSpeech": "Ok, here is a file for you."
}
},
{
"mediaResponse": {
"mediaType": "AUDIO",
"mediaObjects": [
{
"name": "Name-of-my-file",
"contentUrl": "https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3",
"description": "3 min meditation",
"largeImage": {
"url": "https://storage.googleapis.com/automotive-media/album_art.jpg",
"accessibilityText": "Album cover of an ocean view"
}
}
]
}
}
],
"suggestions": [
{
"title": "That was appropriate"
},
{
"title": "I didn't like this one"
},
]
}
}
}
}
Теперь этот точный Media Response работает отлично, как в симуляторе на https://console.actions.google.com, так и также как в Google Assistant на моем телефоне.
Однако, как я уже говорил, я хочу, чтобы он работал с файлами на моем сервере, и по какой-то причине, если я изменил contentURL на URL на моем сервере (я просто использовал исходный файл примера, скопированный на мой сервер: https://cstenkamp.de/meditation_files/Jazz_In_Paris.mp3), он больше не работает в Google Assistant. В симуляторе он по-прежнему работает нормально, но если я попробую его на любом телефоне с помощью Google Assistant, он попытается загрузить аудиофайл и завершится сообщением «Unable to play audio».
Так что мне остается только подумать, какие-либо требования к серверу для Google Asstant Media Response, в частности, которые отсутствуют для симулятора.
О моем сервере: это самая маленькая дроплет DigitalOcean, 512 МБ оперативной памяти, Ubuntu 16, с apache2. HTTPS доступен, и файл может быть доступен из браузера (см. Вторую ссылку). Pinging занимает 25 мс в отличие от 15 мс для storage.googleapis.com. URL-адрес берется из NameCheap, если это как-то уместно: shrug:
Спасибо, если я не достаточно хорошо указывал муравейник, пожалуйста, дайте мне знать.