Консоль действий Google(редактор облачных функций) Как добавить изображение в медиа/МедиаОбъект

#google-assistant-sdk #google-assistant #actionbuilder

Вопрос:

Привет, я работаю с помощником Google, я использую Конструктор действий в консоли действий Google. И я работаю с редактором функций Google Cloud, предоставленным в консоли действий, чтобы протестировать свой веб-крючок. Я хотел бы использовать медиаплеер для чтения mp3-песни, которую я предоставляю с URL-адресом. я следовал документации здесь : https://developers.google.com/assistant/conversational/prompts-media и я использовал этот код :

   app.handle('media', (conv) => {
  conv.add('This is a media response');
  conv.add(new Media({
    mediaObjects: [
      {
        name: 'Media name',
        description: 'Media description',
        url: 'https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
        image: {
          large: JAZZ_IN_PARIS_IMAGE,
        }
      }
      
    ],
    mediaType: 'AUDIO',
    optionalMediaControls: ['PAUSED', 'STOPPED'],
    startOffset: '2.12345s'
  }));
});
 

Проблема в том, что этот код работает, когда я удаляю изображение, но если я сохраню его, я получу ошибку :

 Unsuccessful webhook call due to client issue: Error querying agent endpoint. State: URL_UNREACHABLE, reason: UNREACHABLE_5xx.
 

и в ответе на веб-крючок я получил :

 "error": "JAZZ_IN_PARIS_IMAGE is not defined"
 

Мой вопрос в том, как отправить изображение в объекте MediaObject с помощью веб-крючка? Где я должен хранить свое изображение и как добавить его в ответ?

Ответ №1:

В фрагменте кода JAZZ_IN_PARIS_IMAGE не определяется напрямую, но предполагается, что это объект изображения, например png или jpg . МедиаОбъект может иметь большое изображение и/или значок.

Для целей тестирования вы можете загрузить файл в свое облачное хранилище или просто взять любое изображение из Интернета. Но когда вы продвигаетесь вперед, вам действительно следует исправить этот URL-адрес изображения и предоставить исправленный текст alt.

 conv.add('This is a media response');
conv.add(new Media({
    mediaObjects: [
      {
        name: 'Media name',
        description: 'Media description',
        url: 'https://storage.googleapis.com/automotive-media/Jazz_In_Paris.mp3',
        image: {
          large: {
            url: 'https://serebii.net/pokearth/sprites/green/025.png',
            alt: 'This is a sprite of Pikachu!',
          },
        }
      }
      
    ],
    mediaType: 'AUDIO',
    optionalMediaControls: ['PAUSED', 'STOPPED'],
    startOffset: '2.12345s'
  }));
});