google-apps-script - 将 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
参数进行编码,但错误仍然存在。有任何想法吗?
解决方案
根据您链接页面上的官方文档,路径参数的预期格式parent
为spaces/*
. 给出的示例值为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
到此查询返回的可能包括具有各种成员资格状态的成员。
推荐阅读
- php - 在执行时将变量传递给php脚本?
- vim - vim 无法使用
映射键 - c# - Dictionary 和转换为 Dictionary 以阻止 Scriban Template Render 工作的 ExpandoObject 之间有什么区别?
- filesystems - ebpf biolatency 是否会自行产生进程?
- c++ - C++ 未知覆盖说明符
- javascript - setInterval() 不会在没有刷新 Angular 组件中的页面的情况下设置数据
- api - 可以选择使端点可缓存吗?
- python - Scipy 不支持错误。无法加载json文件
- linux - NASM x86_64:文件打开 (SYS_OPEN) 错误列表?
- php - PHP - 将对象输出映射到 HTML 表