angular - 来自网页的 Google Apps 脚本 GmailApp
问题描述
我正在尝试使用 Angular 5 访问 Google Apps Script Gmail 服务。这是一个简单的发送电子邮件功能
我的 GAS 代码如下:
function doGet(e){
var addressee = e.parameters.addressee;
var subject = e. parameters.subject;
var body = e.parameters.body;
sendEmailNA(addressee, subject, body);
}
function sendEmailNA(addressee, subject, body) {
GmailApp.sendEmail(addressee, subject, body);
}
我的角度服务:
sendGoogleEmailNoAttach(addressee: string, subject: string, body: string){
return this.http.get('https://script.google.com/macros/s/[script ID here]/exec?addressee='+addressee+'&subject='+subject+'&body='+body);
}
我的角度组件:
sendGoogleEmail(){
for(var i = 0; i < this.addressees.length; i++){
this.dataService.sendGoogleEmailNoAttach(this.addressees[i].email, this.message.subject, this.message.body)
.subscribe((data: any) =>{
console.log(data);
this.addressees = [];
this.message.attachments = [];
})
}
}
然后我将其发布为访问网络应用程序的用户和任何人。
我在 Stackdriver Logging 中没有收到任何错误。我只是在本地控制台上得到一个 CORS 错误,这对我来说历史上意味着其他地方的错误。
任何想法或想法表示赞赏。谢谢你。
解决方案
这里可能会发生一些问题。由于我没有足够的声誉来评论和询问更多信息,因为你的答案是在 2018 年被问到的,你可能已经修补了它,我将在下面列出。
收到 CORS 错误有几个原因,可能是:
- 您的脚本运行并没有返回任何内容,但尚不清楚您是否已对其进行修补。如果您的脚本没有返回任何内容,谷歌脚本将提供一个 HTML 页面,说明代码没有返回任何内容,这将触发 CORS 错误。
- 您的脚本遇到了错误,这也会导致 google 脚本返回 HTML 页面并导致 CORS 错误。
您可以使用hurl.it对其进行测试以查看您的脚本返回什么,您可以在 google 脚本编辑器中测试您的脚本并将其设置为可能的值。
希望这还不算太晚!
推荐阅读
- java - 使用 BoxLayout 时设置 JPanel 背景
- javascript - Laravel Yajra 数据表不显示搜索、分页和过滤器
- html - 我想拥有唯一的名称一对多关系
- android - 是否可以在 Odroid C2 上成功运行“DJI GO4”或“UgCS for DJI”?
- python-3.x - 如何使用flask-socketio进行心跳检测
- javascript - 如何实现动态反应表
- c# - Http 请求有时会卡住或在不稳定的网络上没有收到来自服务器的响应
- button - bsmodal 页脚闪亮的附加按钮
- sql - Teradata SQL - 显示里程碑的案例和逻辑
- c# - 尝试从 ionic 连接到服务器但收到错误