-1

嗨,我正在使用谷歌助手,我正在使用谷歌操作控制台中的操作生成器。我使用操作控制台中提供的谷歌云功能编辑器来测试我的 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 中发送图像?我必须在哪里存储我的图像以及如何在响应中添加它?

4

1 回答 1

1

在代码片段中,JAZZ_IN_PARIS_IMAGE没有直接定义,而是应该是一个Image 对象,比如pngor jpg。MediaObject可以有一个大图像和/或一个图标。

出于测试目的,您可以将文件上传到您的云存储或从网络上获取任何图像。但是,当您继续前进时,您确实应该修复该图像 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'
  }));
});
于 2021-10-18T18:07:15.663 回答