簡體   English   中英

手動執行時,Google Apps腳本有效,但由觸發器啟動時,則無效,並且不生成日志

[英]Google Apps Script works when executed manually but not when launched by a trigger & no logs produced

我正在使用部署為網絡應用程序的Google Apps腳本(GAS),以接收來自Nexmo(SMS)的JSON-POST API調用,並通過將此SMS文本傳遞給PubNub進行REST API調用,以進行進一步分發。

當我手動執行腳本時,一切都會按預期進行。 但是,當腳本由對GAS webhook的post API調用觸發時,SMS數據將傳遞給GAS,但似乎沒有對PubNub API的調用。

我嘗試將Logger,Stackdriver和自定義日志記錄功能用於電子表格,但是doPost(e)觸發器執行腳本時沒有日志生成。 手動執行后,日志將按預期顯示(無錯誤)。 對於任何建議,我將不勝感激,因為我完全不知道什么地方出了問題以及如何開始對其進行跟蹤。 下面是一個簡化的代碼:

//this is a function that fires when the webapp receives a GET request
function doGet(e) {
  return HtmlService.createHtmlOutput("request received");
}

//this is a function that fires when the webapp receives a POST request
function doPost(e) {
//  var myData = JSON.parse(e.postData.contents); // below sample data analogous to what I would get from JSON-POST
  var myData = { "msisdn": "447700900001", "to": "447700900000", "messageId": "0A0000000123ABCD1", "text": "B", "type": "text", "keyword": "B", "message-timestamp": "2019-01-01T12:00:00.000+00:00" }
  var responseText = myData.text;
  return HtmlService.createHtmlOutput("post request received");

// This is the PubNub API call
  var PUB_KEY = 'demo';
  var SUB_KEY = 'demo';
  var CHANNEL = 'poll_demo';
  var url = 'http://pubsub.pubnub.com/publish/' + PUB_KEY + '/' + SUB_KEY + '/0/' + CHANNEL + '/0/' + escape('"' + responseText + '"');
  var response = UrlFetchApp.fetch(url);
}

編輯:在這一點上,我的主要障礙是,即使我嘗試在處理任何其他內容之前記錄原始的發布數據,也不會在console.log或Logger.log中顯示任何內容。 同時,模擬請求調用的curl請求未顯示HTTP 200錯誤,並確認進行了調用。

感謝@tehhowch指出我根本不了解return工作原理。 將return放在其余代碼執行之前,使其余代碼對解釋器不可見,並且呈現的代碼等效於以下內容:

//this is a function that fires when the webapp receives a GET request
function doGet(e) {
  return HtmlService.createHtmlOutput("request received");
}

//this is a function that fires when the webapp receives a POST request
function doPost(e) {
//  var myData = JSON.parse(e.postData.contents); // below sample data analogous to what I would get from JSON-POST
  var myData = { "msisdn": "447700900001", "to": "447700900000", "messageId": "0A0000000123ABCD1", "text": "B", "type": "text", "keyword": "B", "message-timestamp": "2019-01-01T12:00:00.000+00:00" }
  var responseText = myData.text;
  return HtmlService.createHtmlOutput("post request received");
// PubNub inaccessible code is here
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM