【发布时间】:2019-07-02 00:56:15
【问题描述】:
这是我想要做的:
- 从在线自动化服务(Zoho Flow,目的类似于 Zapier)远程执行 Google Apps 脚本功能。*
- 我远程执行的这个功能是为组织中的每个人添加 gmail 标签。
为了做到这一点,我做了以下工作:
在与添加 gmail 标签的功能关联的同一 GCP 项目中创建了具有域范围委派的服务帐户。
使用 OAuth2 library for Google Apps 脚本在我的脚本中为该服务帐户永久保存 JWT 授权。
已验证该功能适用于 Google Apps 脚本中 Google 组织中的所有用户的服务帐户功能
将此脚本部署为 API 可执行文件以启用远程执行
使用 Apps Script API (https://mail.google.com/) 的邮件范围授权创建的 authtoken,以及我的脚本中 OAuth2 library 所需的附加范围。这是在 google developer playground 中使用 OAuth2.0 客户端 ID 凭据完成的,这些凭据被授权为同一 GCP 项目的一部分。
使用带有Postman的Google Apps Script API远程成功执行了函数
现在,为了真正使这个功能正式化,我现在必须用实际的客户端替换 postman 和 google 开发者控制台,这是用于 api 连接和流程自动化的 Zoho Flow 平台。
为了进行切换,我做了以下操作;
- 在用于 Google Developer Playground 的相同凭据下为客户端 (Zoho Flow) 添加了授权重定向 URL:
利用从这些凭据的 JSON 表示中找到的凭据** 在此软件中创建所谓的“连接”,这基本上是一个易于使用的 OAuth2.0 连接,具有良好的前端可用于访问 API 数据(这是我创建此连接的部分):
为此连接输入了在 google developer playground 中授权的相同范围,以及用于 Google Apps 脚本的 OAuth2.0 库使用的附加范围 (https://www.googleapis.com/auth/script.external_request):
瞧,我在尝试从 Web 应用程序访问 Google API 数据时收到以下错误,据说导致错误的范围是每个范围除了 用于邮件范围:https://mail.google.com/。我已经进行了额外的测试,以验证作为谷歌应用程序脚本 API 一部分的所有其他范围也会创建此错误,而不仅仅是 OAuth2 库的这个外部范围。
支持人员说这可能是我的凭据权限存在问题;我的逻辑是正确的吗?如果是,那么这是他们软件的问题,我会让他们进一步研究。
【问题讨论】:
-
您要求什么范围?你的屏幕截图被剪短了。
-
只是上面提到的两个,仅此而已。开发者控制台和 zoho flow 示例都是这种情况。
-
范围的屏幕截图被截断,所以我实际上无法阅读第二个范围。
-
您是否在Google Cloud Console 中创建了项目?这将允许您创建凭据并激活范围。 This article 有一个例子说明如何做到这一点。
-
是的; Google Cloud Console 有一个项目,在 Google Developer Playground 和新客户端中都引用了该项目的凭据。
标签: json rest google-apps-script google-cloud-platform zoho