Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 服务器和Gmail插件之间的跨客户端授权_Google Apps Script_Google Oauth_Google Authentication_Gmail Addons - Fatal编程技术网

Google apps script 服务器和Gmail插件之间的跨客户端授权

Google apps script 服务器和Gmail插件之间的跨客户端授权,google-apps-script,google-oauth,google-authentication,gmail-addons,Google Apps Script,Google Oauth,Google Authentication,Gmail Addons,背景: 这是关于使用谷歌应用程序脚本创建的Gmail插件。 当用户安装插件时,会出现OAuth同意屏幕,在该屏幕中,用户同意允许“向用户显示的产品名称”(在OAuth屏幕中配置)允许指定的访问 现在,我读到: 其中指出: 当用户授予对特定范围的应用程序的访问权限时,用户 正在查看用户同意屏幕,其中包括项目级别 在Google API控制台中设置的产品品牌。(用于 有关设置同意屏幕的信息,请参阅设置OAuth 因此,当用户在API控制台帮助中向任何客户端ID授予访问特定范围的权限时,Google会

背景:

这是关于使用谷歌应用程序脚本创建的Gmail插件。 当用户安装插件时,会出现OAuth同意屏幕,在该屏幕中,用户同意允许“向用户显示的产品名称”(在OAuth屏幕中配置)允许指定的访问

现在,我读到:

其中指出:

当用户授予对特定范围的应用程序的访问权限时,用户 正在查看用户同意屏幕,其中包括项目级别 在Google API控制台中设置的产品品牌。(用于 有关设置同意屏幕的信息,请参阅设置OAuth 因此,当用户在API控制台帮助中向任何客户端ID授予访问特定范围的权限时,Google会考虑 项目中,授权表示用户对整个应用程序的信任 适用于该范围

现在,我有一个服务器web组件(lambda)(属于同一个产品),它需要访问用户的电子邮件,访问权限与用户在安装插件后提供的相同(“授权访问”按钮)

问题:

在我的例子中,有没有一种方法可以让跨客户端(一个后端服务器和一个gmail插件)让后端只访问用户的数据,而不触发额外的(基本上是用户同意的)

注意:使用GAS OAuth库手动触发的附加授权屏幕,我能够获得“身份验证代码”,并将其传递给服务器,服务器现在可以使用该代码访问同意的数据(我们使用了相同的客户端id和密码)。然而,这种方法的问题是:

  • 用户收到2封关于授予权限的电子邮件。插件和手动触发流
  • 用户必须先授权gmail插件进行首次访问,然后再授权我手动触发的另一次访问。 即使有一种方法可以在用户安装插件时获得“身份验证代码”,也可以

提前道歉有很多分散的文档,尽管我看了很多,但我可能遗漏了一些内容。

我们只发布一个授权码(刷新令牌)来换取一个用户授权/批准。您的应用可以在android或web上获得新的访问令牌,无需用户批准。但如果它再次需要刷新令牌,用户仍然需要批准该请求。
因此,如果插件可以与您的服务器对话,您可以给它一个短期访问令牌,或者需要用户授权。

我认为您需要将这两个脚本添加到同一个Google云平台项目中。