টুইলিও

একটি SMS বার্তা পাঠান

/**  * An example of sending SMS messages from Google Ads Scripts using Twilio.  * See: https://developers.google.com/google-ads/scripts/docs/features/third-party-apis#basic_authentication_samples  * for full details on configuration.  */  // Supply an email address: If for some reason your Twilio account // details become invalid or change, this will be used to make sure // you are notified of failure. const EMAIL_ADDRESS = 'INSERT_EMAIL_ADDRESS';  // The Twilio phone number or short code, as per the Phone Numbers Dashboard // https://www.twilio.com/console/phone-numbers/incoming const TWILIO_SRC_PHONE_NUMBER = 'INSERT_TWILIO_SRC_PHONE_NUMBER';  // Your Twilio Account SID, see: https://www.twilio.com/console const TWILIO_ACCOUNT_SID = 'INSERT_TWILIO_ACCOUNT_SID';  // Your Twilio API Auth Token, see: https://www.twilio.com/console const TWILIO_ACCOUNT_AUTHTOKEN = 'INSERT_TWILIO_ACCOUNT_AUTHTOKEN';  /**  * Builds an SMS message for sending with Twilio and sends the message.  * @param {string} dstPhoneNumber The destination number. This is a string as  *     telephone numbers may contain '+'s or be prefixed with '00' etc.  * @param {string} message The text message to send.  */ function sendTwilioSms(dstPhoneNumber, message) {   const request =       buildTwilioMessageRequest(dstPhoneNumber, message);   sendSms(request); }  /**  * Send an SMS message  * @param {!SmsRequest} request The request object to send  */ function sendSms(request) {   const retriableErrors = [429, 500, 503];    for (let attempts = 0; attempts < 3; attempts++) {     const response = UrlFetchApp.fetch(request.url, request.options);     const responseCode = response.getResponseCode();      if (responseCode < 400 || retriableErrors.indexOf(responseCode) === -1) {       break;     }     Utilities.sleep(2000 * Math.pow(2, attempts));   }    if (responseCode >= 400 && EMAIL_ADDRESS) {     MailApp.sendEmail(         EMAIL_ADDRESS, 'Error sending SMS Message from Google Ads Scripts',         response.getContentText());   } }  /**  * Builds a SMS request object specific for the Twilio service.  * @param {string} recipientPhoneNumber Destination number including country  *     code.  * @param {string} textMessage The message to send.  * @return {SmsRequest}  */ function buildTwilioMessageRequest(recipientPhoneNumber, textMessage) {   if (!recipientPhoneNumber) {     throw Error('No "recipientPhoneNumber" specified in call to ' +         'buildTwilioMessageRequest. "recipientPhoneNumber" cannot be empty');   }   if (!textMessage) {     throw Error('No "textMessage" specified in call to ' +         'buildTwilioMessageRequest. "textMessage" cannot be empty');   }   const twilioUri = `https://api.twilio.com/2010-04-01/Accounts/${TWILIO_ACCOUNT_SID}/Messages`;   const authHeader = 'Basic ' +       Utilities.base64Encode(           TWILIO_ACCOUNT_SID + ':' + TWILIO_ACCOUNT_AUTHTOKEN);   const options = {     muteHttpExceptions: true,     method: 'POST',     headers: {Authorization: authHeader},     payload: {       From: TWILIO_SRC_PHONE_NUMBER,       To: recipientPhoneNumber,       // Twilio only accepts up to 1600 characters       Body: textMessage.substr(0, 1600)     }   };   return {url: twilioUri, options: options}; }