使用 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 获取数据?

如何使用 Google API 进行离线访问

在传递给 google.setOnLoadCallback() 的函数中使用参数;

Google 里的软件工程学

离线使用Google Apps Scripts