Google Spread SheetからSMSを使いたい!
ってことで、その方法です。
Twilioに登録
SMSを使うためにTwilioというサービスを使います。
これは電話やSMSをAPI経由で扱えるサービスです。
http://twilio.kddi-web.com からサインアップしてください。
SMSを使うにはアメリカ(+1)の電話番号を使わないといけないみたいです。
詳細は以下を参照してください。
http://qiita.com/zaru/items/079fa96cba1081a76b10
TwilioのサイトからSMSをテスト送信
https://jp.twilio.com/user/account/developer-tools/api-explorer/message-create のページからSMSを送信できます。
また、このページから以下の情報をメモしておきましょう。
- AccountSid
- Auth Token
Google Apps ScriptからSMS送信
以下のコードでSMSを送信できます。
上記のTwilioのURLから得た以下の情報を適宜使ってください。
- Twilioで取得したアメリカの電話番号
- AccountSid
- Auth Token
また、電話番号は基本、+国コードから始まる形式(E.164 形式)でないと動きません。
var SMSManager = (function() {
"use strict";
var TWILIO_SMS_API_URL = "https://api.twilio.com/2010-04-01/Accounts/#{AccountSid}/Messages.json";
function SMSManager(from, accountSid, auth_token){
this.from = from;
this.accountSid = accountSid;
this.auth_token = auth_token;
this.sms_api_url = TWILIO_SMS_API_URL.replace("#{AccountSid}", accountSid);
}
// 送信結果のステータスコードを返します。
SMSManager.prototype.send = function(to, body){
var options = {
method: "post",
headers: {
Authorization: " Basic " + Utilities.base64Encode(this.accountSid + ":" + this.auth_token)
},
payload: {
To: to,
From: this.from,
Body: body
},
muteHttpExceptions: true,
};
var response = UrlFetchApp.fetch(this.sms_api_url, options);
var code = response.getResponseCode();
return code;
};
return SMSManager;
})();
function main(){
var from = "+100000000"; //Twilioで取得したアメリカの電話番号
var accountSid = "YOUR_ACCOUNT_SID";
var auth_token = "YOUR_AUTH_TOKEN";
var sms = new SMSManager(from, accountSid, auth_token);
var phone_number = "+819011111111"; // 090XXXX形式ではダメで+8109XXXX形式(E.164 形式)にする
var message = "こんにちゎ";
// 送信結果のステータスコードが返ります。
var code = sms.send(phone_number, message);
// 送信成功時には201が返るみたいです。
if (code == 200 || code == 201){
Logger.log("送信成功");
} else {
Logger.log("送信失敗");
}
}
価格
TwilioのSMSの利用料は以下サイトに載っています。
http://twilio.kddi-web.com/price/
ドコモ宛だと1回10円ぐらいかかっちゃうので、ミスってfor文, while文でまわしちゃうとえげつないので注意してください。