0

メーリング リストを使用して、サード パーティ プロバイダー経由で SMS を送信したいと考えています。彼らが提供するコードサンプルは次のとおりです。

<%
' This simple ASP Classic code sample is provided as a starting point. Please extend your
' actual production code to properly check the response for any error statuses that may be
' returned (as documented for the send_sms API call).

username = "your_username"
password = "your_password"
recipient = "44123123123"
message = "This is a test SMS from ASP"
postBody = "username=" & Server.URLEncode(username) & "&password=" &     Server.URLEncode(password) & "&msisdn=" & recipient & "&message=" & Server.URLEncode(message)

set httpRequest = CreateObject("MSXML2.ServerXMLHTTP")
httpRequest.open "POST", "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0", false
httpRequest.SetRequestHeader "Content-Type", "application/x-www-form-urlencoded"
httpRequest.send postBody
Response.Write (httpRequest.responseText)
%>

GASでこれを行う方法がわかりません(私は本当にアマチュアプログラマです...)。グーグルから、「UrlFetchApp.fetch」のようなものを使用する必要があるようです。ヘルプや関連リンクをいただければ幸いです。前もって感謝します。

4

1 に答える 1

0

以下の関数は、適切にフォーマットされた を作成しますPOST。有効な資格情報がなくても、200 OK HTTP 応答を取得し、サーバーが報告することを確認できます23|invalid credentials (username was: your_username)|。したがって、適切な詳細が入力されていれば、機能するはずです。

contentType に含めapplication/x-www-form-urlencodedましたが、これはデフォルトであるため必要ありません。

これが一連のテスト値で機能するようになった場合、次のステップは、パラメーターを受け入れて使用するように変更することです-それはあなたに任せます.

/*
 * Sends an HTTP POST to provider, to send a SMS.
 *
 * @param {tbd} paramName To be determined.
 *
 * @return {object} Results of POST, as an object. Result.rc is the
 *                  HTTP result, an integer, and Result.serverResponse
 *                  is the SMS Server response, a string.
 */
function sendSMS() {
  var url = "http://bulksms.2way.co.za/eapi/submission/send_sms/2/2.0";
  var username = "your_username";
  var password = "your_password";
  var recipient = "44123123123";
  var message = "This is a test SMS from ASP";
  var postBody = {
    "username" : encodeURIComponent(username),
    "password" : encodeURIComponent(password),
    "msisdn" : encodeURIComponent(recipient),
    "message" : encodeURIComponent(message)
  };

  var options =
  {
    "method" : "post",
    "contentType" : "application/x-www-form-urlencoded", 
    "payload" : postBody
  };

  // Fetch the data and collect results.
  var result = UrlFetchApp.fetch(url,options);
  var rc = result.getResponseCode();     // HTTP Response code, e.g. 200 (Ok)
  var serverResponse = result.getContentText(); // SMS Server response, e.g. Invalid Credentials
  debugger;  // Pause if running in debugger
  return({"rc" : rc, "serverResponse" : serverResponse});
}

参考文献

于 2013-03-28T02:42:33.267 に答える