Google Action Console(云函数编辑器) 如何添加图片到Media/MediaObject

Google Action Console(Cloud function editor) How to add image to a Media/MediaObject

您好,我正在使用 google 助手,我正在 Google 操作控制台中使用 Action Builder。我使用 Action Console 中提供的 google 云函数编辑器来测试我的 webhook。我想使用媒体播放器来阅读我提供的带有 url 的 mp3 歌曲。我遵循了这里的文档: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.

在我得到的 webhookResponse 中:

"error": "JAZZ_IN_PARIS_IMAGE is not defined"

我的问题是如何在通过 webhook 发送的 MediaObject 中发送图像?我必须在哪里存储我的图像以及如何将其添加到响应中?

在代码片段中,JAZZ_IN_PARIS_IMAGE 没有直接定义,但应该是一个 Image object, like png or jpg. A MediaObject 可以有一个大图像 and/or 一个图标。

出于测试目的,您可以将文件上传到您的云存储或只从网络上获取任何图像。但是当您继续前进时,您真的应该修复该图像 URL 并提供更正的替代文本。

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'
  }));
});