调用需要AJAX授权的Google Apps Script
Call a Google Apps Script that requires authorization in AJAX
我需要在AJAX中访问Google Apps脚本,该脚本需要用户授权才能从他的GMail帐户发送电子邮件。由于种种原因,我不得不从Google Apps脚本发送这封邮件。
调用是从托管在服务器上的web应用程序发出的。我也使用谷歌登录+认证。我试图包括gmail在我的web应用程序授权范围,但这是不够的,因为我的web应用程序和我的谷歌应用程序脚本是不相同的实体谷歌(不相同的client_id)。
我希望整个事情是这样的:
- 用户在他的Google帐户上对我的web应用程序进行身份验证
- 他点击按钮发送电子邮件
- 如果他从未授权给我的Google Apps脚本,授权弹出显示
- 他授予权限,他是不是重定向到谷歌应用程序脚本结果页,但留在我的web应用程序
- Google Apps脚本发送电子邮件,并在JSONP中返回一些东西到我的Web应用程序。
这可能吗?
我想到了几个解决方案,但我不知道如何使它们起作用:
- 是否有办法设置谷歌应用程序脚本的client_id为和我的Web应用一样吗?
- 或者有办法创建(&自定义)按钮,这是自动生成的,当我试图访问一个谷歌应用程序脚本,我没有授予访问权限,并显示该按钮在我的web应用程序?
我被这个困住了,任何帮助都非常感谢!
你的选项都不可能。您无法以任何方式绕过该授权屏幕。
使用相同的客户端或作用域对您没有帮助,最多将授权您的帐户而不是用户帐户。每个用户都是一个独立的认证流,有自己的令牌,由app脚本保存。
然而
如果你必须这样做,现在可以用另一种方式来做,因为:
1) app脚本现在支持(自2014年2月)实现自己的oauth2流。
看到StateTokenBuilder/ScriptApp.getOAuthToken ()/ScriptApp.newStateToken ()
2) Google现在提供了一个oauth2 gmail api(几天前在Google I/O 2014上公布)
使用这两个,您可以使用自己的控制台项目等编写自己的代码来发送电子邮件。
相关文章:
- Google Apps Script中的标准Javascript
- Google Apps 脚本为 getLastRow 抛出电子邮件失败通知,我做错了什么
- Google Apps 脚本在单元格中返回行值
- 在Google Apps上从JavaScript迁移到Python
- 在 Google Apps 脚本中,无法以编程方式创建触发器以从 onEdit 触发器发送电子邮件
- Google Apps 脚本中的格式化日期
- Google Apps 脚本:尝试根据单元格的背景颜色发送电子邮件
- Google Apps 脚本,用于根据一个单元格的值对另一个单元格进行条件颜色格式设置
- 如何转换SalesForce Api提供的UTC日期格式,并使用Google Apps脚本将其转换为本地日期和时间格式
- Google UiApp中的Google Apps脚本验证问题
- 添加“;密码”;键入Google Apps Script inputBox
- 找不到Google Apps脚本库嵌套函数
- HTTP POST 和 Google Apps Script 文件上传
- Google Apps Script 中基于 Twitter OAuth Pin 的授权“oob”
- Google-apps-script不会在onEdit函数中发送电子邮件
- 在 Google Apps Script Web App 中显示文件和文件夹
- 使用 Google Apps 脚本处理数组中输入元素中的多个文件
- 在 Google Apps 脚本中调用函数
- Google 电子表格:如何使用 Google Apps 脚本命名范围
- Google Apps 脚本:解析 XML 会导致错误:“无法在对象中找到函数 getChildren”