调用需要AJAX授权的Google Apps脚本

时间:2014-07-02 10:28:39

标签: javascript ajax google-apps-script oauth-2.0 google-oauth

我需要访问AJAX中的Google Apps脚本,该脚本需要用户授权才能从其GMail帐户发送电子邮件。 出于各种原因,我必须从Google Apps脚本发送该电子邮件。

通过我服务器上托管的Web应用程序进行调用。我也在使用Google Signin +身份验证。 我尝试在我的网络应用程序授权范围中包含gmail,但这还不够,因为我的网络应用程序和我的Google Apps脚本与Google不是同一个实体(不是同一个client_id)。

我希望整个工作如下:

  1. 用户通过其Google帐户在我的网络应用上进行身份验证
  2. 他点击按钮发送电子邮件
  3. 如果他从未授权我的Google Apps脚本,则会显示授权弹出窗口
  4. 他授予权限,他重定向到Google Apps脚本结果页,但保留在我的网络应用
  5. Google Apps脚本会发送电子邮件,并将JSONP中的内容返回到我的Web App。
  6. 有可能吗?

    我想过几个解决方案,但我不知道如何让它们起作用:

    1. 有没有办法将Google Apps脚本的client_id设置为 和我的网络应用程序一样?
    2. 或者有没有办法创建(和自定义)当我尝试访问我未授予访问权限的Google Apps脚本时自动生成的按钮,并在我的网络应用中显示该按钮?
    3. 我坚持这一点,任何帮助都非常感激!

1 个答案:

答案 0 :(得分:1)

您的选择都不可能。您无法以任何方式绕过该授权屏幕。
使用相同的clientid或范围不会帮助您,最多会授权您的帐户而不是用户帐户。每个用户都是一个独立的oauth流程,其自己的令牌由应用程序脚本保存 然而
如果必须,现在可以用不同的方式做到这一点,因为:
1)应用程序脚本现在支持(自2014年2月起)实现自己的oauth2流程。
请参阅StateTokenBuilder / ScriptApp.getOAuthToken()/ ScriptApp.newStateToken()

2)Google现在提供oauth2 gmail api(几天前在Google I / O 2014上发布)

使用这两个,您可以使用自己的控制台项目等制作自己的代码来发送电子邮件。