首页 > 解决方案 > 将 GET 发送到 space.members.list 时出现“无效参数”

问题描述

我正在尝试使用 Apps 脚本创建一个 Google Hangouts Chat 聊天机器人(在 G Suite 中)。我想获取聊天室中每个人的列表,但是 Apps Scripts 尚不直接支持此功能,因此我使用的是其余 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)`

我得到的

无效参数:https : //chat.googleapis.com/v1/ {parent="spaces/pQkgxxxxxxxx"}/members

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

标签: google-apps-scripturlfetchhangouts-chat

解决方案


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

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

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

有他们。这个模板 url 格式在Google API HTTP 注释网站上有深入的解释。

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

pQkgxxxxxxx您还应该考虑通过检查响应中的 a (并在下一次调用中将nextPageToken其作为 URL 参数传递),可能需要多次调用来解析空间的所有成员。pageToken

您还应该考虑MemberShip到此查询返回的可能包括具有各种成员资格状态的成员。


推荐阅读