"Invalid argument" 发送 GET 到 spaces.members.list

"Invalid argument" when sending GET to spaces.members.list

我正在尝试使用 Apps 脚本创建 Google Hangouts Chat 聊天机器人(在 G Suite 中)。我想获取聊天室中每个人的列表,但 Apps 脚本尚不直接支持此功能,因此我使用其余 API。 API 调用 list 似乎很简单:

命令是
GET https://chat.googleapis.com/v1/{parent=spaces/*}/members

我已经创建了一个服务帐户进行授权,然后使用

var endpoint = 'https://chat.googleapis.com/v1/{parent="spaces/pQkgxxxxxxx"}/members'
var options = {
  method: "GET",
  contentType : "application/json" ,
  muteHttpExceptions : true,
  headers: {
    "Authorization": "Bearer " + goa.getToken(),
  }
};
var response = UrlFetchApp.fetch(endpoint, options)`

我得到

Invalid argument: https://chat.googleapis.com/v1/{parent="spaces/pQkgxxxxxxxx"}/members

我已经尝试对 parent 参数进行编码,但错误仍然存​​在。有什么想法吗?

根据您链接页面上的官方文档,路径参数 parent 的预期格式为 spaces/* 形式。给出的示例值为 spaces/AAAAMpdlehY

换句话说,你不需要写 {parents=} 位,即使模板 URL

GET https://chat.googleapis.com/v1/{parent=spaces/*}/members

有。此模板 url 格式在 Google API HTTP annotation website.

上有深入解释

在您的示例中,正确的 GET URI 是 https://chat.googleapis.com/v1/spaces/pQkgxxxxxxx/members

您还应该考虑到,通过检查响应中的 nextPageToken(并将其作为URL参数pageToken在下次调用中)。

您还应该考虑到此查询返回的 MemberShip 可能包括具有不同会员状态的会员。