网页上的Google Apps脚本GmailApp

时间:2018-11-25 21:36:23

标签: angular google-apps-script

我正在尝试使用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);
}

我的Angular服务:

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);
}

我的Angular组件:

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错误,对我而言,这在历史上就意味着其他地方的错误。

任何想法或想法都值得赞赏。谢谢。

1 个答案:

答案 0 :(得分:0)

这里可能会发生一些可能的问题。由于我没有足够的声誉来发表评论并要求提供更多信息,因为您的回答是在 2018 年提出的,您可能已经对其进行了修补,我将在下面列出。

出现 CORS 错误有几个原因,可能是:

  1. 您的脚本运行并没有返回任何内容,但不清楚您是否已对其进行了修补。如果您的脚本未返回任何内容,Google 脚本将提供一个 HTML 页面,说明代码未返回任何内容,这将触发 CORS 错误。
  2. 您的脚本遇到错误,这也会导致 google 脚本返回 HTML 页面并导致 CORS 错误。

您可以使用 hurl.it 对其进行测试以查看您的脚本返回的内容,并且您可以在 google 脚本编辑器中测试您的脚本并将其设置为可能的值。

希望这还不算太晚!