Plivo
    
    
      
    
    
      
      컬렉션을 사용해 정리하기
    
    
      
      내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요.
    
  
    
  
      
    
  
  
  
  
  
    
    
    
  
  
    
    
    
SMS 메시지 보내기
/**
 * An example of sending SMS messages from Google Ads Scripts using Plivo.
 * 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 Plivo 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 number you wish messages to appear to originate from. Must be registered
// with Plivo.
const PLIVO_SRC_PHONE_NUMBER = 'INSERT_SRC_PHONE_NUMBER';
// Account details, see: https://manage.plivo.com/dashboard/
const PLIVO_ACCOUNT_AUTHID = 'INSERT_ACCOUNT_AUTHID';
const PLIVO_ACCOUNT_AUTHTOKEN = 'INSERT_ACCOUNT_AUTHTOKEN';
/**
 * Builds an SMS message for sending with Plivo 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 sendPlivoSms(dstPhoneNumber, message) {
  const request =
      buildPlivoMessageRequest(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 Plivo service.
 * @param {string} recipientPhoneNumber Destination number including country
 *     code.
 * @param {string} textMessage The message to send.
 * @return {SmsRequest}
 */
function buildPlivoMessageRequest(recipientPhoneNumber, textMessage) {
  if (!recipientPhoneNumber) {
    throw Error('No "recipientPhoneNumber" specified in call to ' +
        'buildPlivoMessageRequest. "recipientPhoneNumber" cannot be empty');
  }
  if (!textMessage) {
    throw Error('No "textMessage" specified in call to ' +
        'buildPlivoMessageRequest. "textMessage" cannot be empty');
  }
  const plivoUri =
      `https://api.plivo.com/v1/Account/${PLIVO_ACCOUNT_AUTHID}/Message/`;
  const authHeader = 'Basic ' +
      Utilities.base64Encode(
          PLIVO_ACCOUNT_AUTHID + ':' + PLIVO_ACCOUNT_AUTHTOKEN);
  const options = {
    muteHttpExceptions: true,
    method: 'POST',
    headers: {'Authorization': authHeader, 'Content-Type': 'application/json'},
    payload: JSON.stringify({
      src: PLIVO_SRC_PHONE_NUMBER,
      dst: recipientPhoneNumber,
      text: textMessage
    })
  };
  return {url: plivoUri, options: options};
}
  
  
  
  
    
  
 
  
    
      
      
    
    
      
    
    
  
       
    
    
      
    
  
  
  달리 명시되지 않는 한 이 페이지의 콘텐츠에는 Creative Commons Attribution 4.0 라이선스에 따라 라이선스가 부여되며, 코드 샘플에는 Apache 2.0 라이선스에 따라 라이선스가 부여됩니다. 자세한 내용은 Google Developers 사이트 정책을 참조하세요. 자바는 Oracle 및/또는 Oracle 계열사의 등록 상표입니다.
  최종 업데이트: 2025-08-21(UTC)
  
  
  
    
      [[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["필요한 정보가 없음","missingTheInformationINeed","thumb-down"],["너무 복잡함/단계 수가 너무 많음","tooComplicatedTooManySteps","thumb-down"],["오래됨","outOfDate","thumb-down"],["번역 문제","translationIssue","thumb-down"],["샘플/코드 문제","samplesCodeIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2025-08-21(UTC)"],[],[]]