使用 Google Scripts 从 Google People API 获取 google 联系人电子邮件目录中的电子邮件列表
Posted
技术标签:
【中文标题】使用 Google Scripts 从 Google People API 获取 google 联系人电子邮件目录中的电子邮件列表【英文标题】:Getting list of emails in google contacts email directory from Google People API using Google Scripts 【发布时间】:2021-10-27 18:47:39 【问题描述】:如何让People.searchDirectoryPeople()
工作?这就是我得到的:
People.searchDirectoryPeople().setQuery("Justin");
我能够让https://developers.google.com/people/quickstart/apps-script 在应用程序脚本中工作,但到目前为止还没有。
我的目标是通过电子邮件或姓名搜索目录(最好同时学习如何做) - 提前致谢!
【问题讨论】:
【参考方案1】:Google Apps 脚本高级服务基本上是其 REST API 对应物的包装器。因此,您通常需要查看 REST 文档以了解如何正确利用 API 端点。
但是,在这种情况下,searchDirectoryPeople
端点的文档没有解释查询语法。幸运的是,查询语法对于许多 Google API 来说是通用的,并且记录在 Drive API 下。以下链接应该可以帮助您朝着正确的方向前进:
https://developers.google.com/people/api/rest/v1/people/searchDirectoryPeople https://developers.google.com/drive/api/v3/search-files
Node.js
标签下的第二个链接中提供了相关的代码示例。
此外,请务必利用 Apps 脚本编辑器的代码完成功能来确定您可以将哪些参数传递给端点。
【讨论】:
谢谢!快速了解第一段:我应该学习其他任何编码语言/程序以充分利用 Google Apps 脚本/高级服务吗?另外,代码完成功能?自动填充,对吧?【参考方案2】:这是一个搜索目录的简单脚本:
function searchDirectory()
var results = People.People.searchDirectoryPeople(
query : "Tom",
readMask: "names,emailAddresses,phoneNumbers",
sources: "DIRECTORY_SOURCE_TYPE_DOMAIN_PROFILE"
);
Logger.log("results: " + JSON.stringify(results, null, 0));
results.people?.forEach(person => Logger.log(person.names?.map(name => name.displayName) + ", " +
person.emailAddresses?.map(email => email.value) + ", " +
person.phoneNumbers?.map(phone => phone.value)));
第一个日志将输出原始结果对象,然后循环将遍历结果中的每个人并记录他们的姓名、电子邮件和电话。
【讨论】:
以上是关于使用 Google Scripts 从 Google People API 获取 google 联系人电子邮件目录中的电子邮件列表的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JavaScript 从 Google 日历页面获取事件 ID?
如何设置表的架构以在 Google App Scripts 中自动检测从 Google Cloud Storage 获取数据?