通过服务帐户使用高级 Google 服务

Using Advanced Google Services with Service Account

我正在使用 Google Apps 脚本开发应用程序并使用一些高级服务,例如 Admin SDK(目录 API)和经销商 API。

这些 API 似乎是在访问我的 Web 应用程序的用户的上下文中被我的 Web 应用程序调用的(它是通过“以 'User accessing the webapp' 的身份执行应用程序”部署的)。

理想情况下,我希望这些 API 的调用通过我项目下的某个服务帐户(在开发控制台中)进行身份验证。可能吗?怎么样?

当您的脚本 运行 和 'User accessing the webapp' 一样时,它 运行 会根据您的配额关闭用户数据。如果您想 运行 它针对您的数据,您需要更改设置以 "me".

执行应用程序

如果您需要执行混合身份验证模型,其中应用需要访问两个不同帐户的数据,您有一些选择。无论哪种方式,一个帐户都可以访问内置的 Apps 脚本服务,而另一个帐户将使用 API 的 REST 接口来访问其数据。

您可以 运行 应用 "me" 然后为用户管理您自己的 Oauth。这可以通过 OAuth 库来完成,例如:

https://github.com/googlesamples/apps-script-oauth2

或者您可以 运行 作为用户使用该应用程序并为您的服务器使用服务帐户。这是我为在 Apps 脚本中使用服务帐户而放在一起的库:

https://github.com/Spencer-Easton/Apps-Script-GSApp-Library