मेरे पास एक Google शीट ऐड-ऑन है जो अपलोडपोस्ट्स () नामक फ़ंक्शन के साथ Google My Business API को एपीआई कॉल करने के लिए घड़ी आधारित ट्रिगर का उपयोग करता है।

उपयोगकर्ता इस तरह एडऑन के मेनू के माध्यम से ट्रिगर सेट कर सकता है:

function createTrigger() {
  try{
    deleteTriggers();
    let ss = SpreadsheetApp.getActiveSpreadsheet();
    let configTab = ss.getSheetByName('CONFIG');
    let hour = configTab.getRange('A3').getValue();
    let hourVal = hour.toString().split(" - ")[0].trim();

    ScriptApp.newTrigger('uploadPosts')
    .timeBased()
    .atHour(hourVal)
    .nearMinute(0)
    .everyDays(1)
    .create();
  }  
  catch(err) {
    console.log(err);
    if (err.message === "Cannot read property 'getRange' of null"){
      Browser.msgBox("😩 Woa there! You must run Initial Setup, before turning on Auto-Posting! 😩 ");
    }
  }
}

function deleteTriggers () {
  try{
    var triggers = ScriptApp.getProjectTriggers();
    for (var i = 0; i < triggers.length; i++) {
      ScriptApp.deleteTrigger(triggers[i]);
    }

  }
  catch(err) {
    if (err.message === "Cannot read property 'getRange' of null"){
      Browser.msgBox("😩 Woa there! You must run Initial Setup, before turning off Auto-Posting! 😩 ");
    }
  }
}

ट्रिगर किसी के लिए भी ठीक काम करते हैं जो ऐड-ऑन का संपादक है, लेकिन ऐड-ऑन उपयोगकर्ताओं के लिए एक कार्यशील ट्रिगर सेट नहीं करता है। जब वे https://script.google.com/home/triggers पर जाते हैं तो उन्हें एक प्रोजेक्ट नाम और फ़ंक्शन नाम दोनों के लिए "-" सेट के साथ पंक्ति।

enter image description here

ऐड-ऑन उपयोगकर्ताओं के लिए काम करने के लिए घड़ी आधारित ट्रिगर के लिए मुझे क्या बदलने की आवश्यकता है?

2
Noah Learner 14 जून 2020, 21:01

1 उत्तर

सबसे बढ़िया उत्तर

इस समस्या का समाधान दुगना था।

  1. प्रोजेक्ट ने नए V8 रनटाइम का इस्तेमाल किया। ऐप्स स्क्रिप्ट Google समूहों में बहुत सारी समस्याएं थीं: ऐड-ऑन के लिए नया रनटाइम और समय आधारित ट्रिगर।

मैंने es5 सिंटैक्स पर वापस जाने के लिए सभी कार्यों को संशोधित किया और फिर पुराने रनटाइम पर वापस कर दिया।

  1. मुझे एक संवेदनशील दायरा जोड़ने की ज़रूरत थी: https://www.googleapis.com/auth/script। स्क्रिप्टऐप

Google द्वारा स्वीकृत होने और रनटाइम को वापस करने के बाद, मेरे ट्रिगर्स ने प्रत्याशित रूप से काम किया।

0
Noah Learner 2 जुलाई 2020, 21:53