Google Apps Script: Workflow approval Selecting approval broken

拈花ヽ惹草 提交于 2021-01-28 14:01:07

问题


I'm working to expand on the workflow script posted here...

James Ferreira Workflow video.

I've expanded the script and all is working fine regarding email, but I'm running into an issue with the doGet() function not working corretly.

Here is the code from the video: (mycode for the sendEmail is different and works fine, as it uses and document template.

function sendEmail(e) {
  var email = e.values[1];
  var Item = e.values[2];
  var cost = e.values[3];  
  var url = '<ENTER YOUR PUBLISHED URL>';  
  var approve = url + '&approval=true'+'&reply='+email; 
  var reject = url + '&approval=false'+'&reply='+email;

  var html = "<body>"+
            "<h2>Please review</h2><br />"+
            Item +": " + cost+ "<br />"+ 
            "<a href="+ approve +">Approve</a><br />"+
            "<a href="+ reject +">Reject</a><br />"+
         "</body>";

  MailApp.sendEmail("jjones@beaconcloudsolutions.com", "Approval Request", 
                "What no html?", {htmlBody: html});  
}

function doGet(e){ 
  var answer = (e.parameter.approval == 'true') ? 'Buy it!' : 'Not this time, Keep saving';   
  MailApp.sendEmail(e.parameter.reply, "Purchase Request", 
                "Your manager said: "+ answer);     
  var app = UiApp.createApplication();
 app.add(app.createHTML('<h2>An email was sent to '+ e.parameter.reply + ' saying: '+ answer + '</h2>'))
  return app
}

So when the script runs, i get the email that shows the links for approval / rejected, but when I select the link for approval or / rejected i get

"Sorry, the page (or document) you have requested does not exist." " Please check the address and try again."

This link should be redirect to the published webapp, noted in the var URL and append either the var approve or reject to it and then just display a basic HTML page.

Any suggestions on what is wrong? the script is authorized..


回答1:


What does the address bar say when you click on the link from the email? Perhaps something is malformed or not properly encoded.

My gut feeling right now is that there is a missing '?' before you append any params.

Perhaps try this -

      //note the ? instead of &
      var approve = url + '?approval=true'+'&reply='+email; 
      var reject = url + '?approval=false'+'&reply='+email; 


来源:https://stackoverflow.com/questions/13239260/google-apps-script-workflow-approval-selecting-approval-broken

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!