Vonage(旧Nexmo)を活用すると、簡単にSMSを指定した電話番号に送信できます。
特にGoogle Apps Script(GAS)との連携は、Webアプリや通知システムの構築に役立つ便利な方法です。
本記事では、GASを使ってVonage APIを利用し、SMSを送信する手順を解説しています。
Vonageの基本概要から、GASでの具体的なコード例、料金体系、無料トライアルでの制限事項までご紹介しています。簡単に実装できる方法を学び、効率的な通知システムを構築しましょう。
Vonageとは何か?
Vonageは、クラウド型のコミュニケーションプラットフォームを提供するアメリカの企業です。「ボネージ」と読みます。
SMSやMMSのメッセージを送受信したり、ビデオ会議やチャットを利用したりすることができます。

Vonageの料金
Vonageの料金は次のようになっています。(カッコは$1=160円換算です)
- SMSの送信: $0.08093(12.9円)
- SMSの受信: $0.05508(8.8円)
- バーチャル電話番号のレンタル $1619.96/月 (25万9千/月)

(バーチャル電話番号が異様に高いですが合っているのでしょうか?翻訳などせずそのままのページです)
(参考)Vonage 料金
文字数と料金(料金は70文字毎)
なお、上記の料金は70文字毎にかかります。
国内配信は全キャリアに対し、一度の送信で660文字まで送信可能です。70文字でセグメント分割され、セグメント単位で従量課金が発生します。海外配信は332〜660文字まで可能です。
分割されて送信されたSMSは国内キャリア側で結合されるため、エンドユーザーには1通のSMSとして表示されます。
Vonageの無料トライアル
Vonageは無料トライアルが利用できます。Twilioなどと違って、無料トライアルの状態でGAS経由でSMSを送信することができます(※ただし、登録した電話番号のみ)
無料トライアルで入ると、2ユーロ分(約360円)のクレジットが使えるようになります。

テストとしてSMSを送信することができます。
Try it out

Tryでは登録した電話番号宛てにしかメッセージを送ることはできません。(電話番号は複数登録できます。)
「Send Message」をクリックするとSMSが送信されます。
メッセージの送信が完了すると以下の表示がされます。このとき0.04ユーロが消費されます。

なお、送信されるメッセージは以下のようになります。

ログの確認
送信したメッセージの詳細は「SMSログ」に表示されます。


GASからSMSを送信する
APIを使って、GASからSMSを送信することもできます。
コード
コードは以下になります。
function sendSMS() {
const apiKey = 'APIキー'; // VonageのAPIキー
const apiSecret = 'アカウントシークレットキー'; // Vonageのシークレットキー
const from = '送信者名'; // SMSの送信者名(任意)
const to = '818012345678'; // 受信者の電話番号(例:日本の番号は「81」から始まる)
const text = 'VongageからSMSを送信しています。'; // 送信したいメッセージ
const url = `https://rest.nexmo.com/sms/json`;
const payload = {
api_key: apiKey,
api_secret: apiSecret,
to: to,
from: from,
text: text,
type: "unicode" // 日本語を含む場合はUnicode指定
};
const options = {
method: 'post',
payload: payload
};
try {
const response = UrlFetchApp.fetch(url, options);
const result = JSON.parse(response.getContentText());
console.log(result); // レスポンスをログに出力
} catch (e) {
console.error("Error: " + e.toString());
}
}
※トライアルの場合、送信できる宛先は登録した番号のみです。
APIキーやアカウントシークレット
APIキーやアカウントシークレットはメニューから確認することができます。
「API設定」をクリックします。

一番上にあるのがAPIキーです。Master()とありますが、APIキーはカッコの中だけです。

送信が完了すると、コンソールに詳細が表示されます。メッセージの料金や残りのクレジットが確認できます。
{ 'message-count': '1',
messages:
[ { to: '818012345678',
'message-id': 'adasdfabb69-2adfa5a8-4dfad762-96-cb370ce95',
status: '0',
'remaining-balance': '1.77518000',
'message-price': '0.07494000',
network: '44010' } ] }
「message-price」が料金です。上記だと、0.07494ドルなので約12円です。
残りのクレジット「remaining-balance」は1.77518000ユーロ(約280円)です。
なお、「network」送信先のキャリア番号で、44010はドコモです。
登録電話番号以外は送信できない
なおトライアルの状態で、登録した電話番号以外にSMSを送信すると、届きません。ただし、コンソール上では同様のメッセージが表示されます。
送信が上手くできたかどうかはログで確認します。

長文を送信した場合
長文を送信することもできます。ただし、70文字毎に料金がかかります。なお、660文字までは1つのメッセージとして送信できます。
例えば、次のような文章(299文字)をSMSで送信します。
Vonageでメッセージを送信しています。
国内配信は全キャリアに対し、一度の送信で660文字まで送信可能です。70文字でセグメント分割され、セグメント単位で従量課金が発生します。海外配信は332〜660文字まで可能です。
分割されて送信されたSMSは国内キャリア側で結合されるため、エンドユーザーには1通のSMSとして表示されます。
上記が約170文字なので、3通分の文字量です。
MAX660文字でリンクも送信することができます。
VongageのURLは以下です。
https://www.vonagebusiness.jp/?bypassgeoloc=true
約300文字です。
コンソールには以下のように表示されます。
{ 'message-count': '5',
messages:
[ { to: '818012345678',
'message-id': '864adea6-2cff-41a7-916a-233181ffc1de',
status: '0',
'remaining-balance': '1.47542000',
'message-price': '0.07494000',
network: '44010' },
{ to: '818012345678',
'message-id': '0254420b-c6b3-4c10-83fd-a2633d649451',
status: '0',
'remaining-balance': '1.47542000',
'message-price': '0.07494000',
network: '44010' },
{ to: '818012345678',
'message-id': '925caeb6-840b-4403-addc-7151877c7bd6',
status: '0',
'remaining-balance': '1.47542000',
'message-price': '0.07494000',
network: '44010' },
{ to: '818012345678',
'message-id': '2a86dafb-a858-442d-99d6-a55565fe3bdb',
status: '0',
'remaining-balance': '1.47542000',
'message-price': '0.07494000',
network: '44010' },
{ to: '818012345678',
'message-id': 'a8f16998-89b5-4392-ac8b-2a983c45912b',
status: '0',
'remaining-balance': '1.47542000',
'message-price': '0.07494000',
network: '44010' } ] }
5回toがあることがわかります。(70 x 5 = 350文字以内)
料金は€0.07494 x 5 = €0.3747(約60円)です。
実際にSMSに届いたメッセージは以下のようになります。リンクも送信することができます。

自分以外にもSMSを送信する方法
トライアルでは認証のとれた電話番号にしかSMSを送信することができません。
電話番号は複数登録することができます。
メニューの「デベロッパーツール > テスト番号」を選択します。

デフォルトでは一番最初に登録した電話番号のみが表示されます。

テスト番号を追加で日本(+81)を選択し、「Add」をクリックします。

認証用のコードが送信されるので、届いたコードを入力すれば完了です。
アップグレードする
電話番号の確認なしに通常利用したい場合は、アップグレードします。
アップグレードといっても月額の契約をするわけではなく、クレジットカードで€10(約1,600円)を振り込みます。
ログイン画面右上の「アップグレード」をクリックします。

もしくは、「請求 > お支払い」を選択し、「資金を追加する」をクリックします。

クレジットカード情報と請求先の住所を入力します。

請求先の住所を入力し、「アップグレード」をクリックします。

使用しているカードによってはセキュリティのためSMSに送信された番号の入力を求められます。(海外の支払いに対してはセキュリティが強化されています)
楽天カードの場合、海外の決済に対するセキュリティが強化されています。
ワンタイムパスワードの入力を求められますが、入力してもカードがブロックされることがあります。
以下のように表示された場合は制限を解除する必要があります。


(参考)楽天カードの利用制限一時解除方法
※一時的に決済されましたが、その後自動キャンセルされました。楽天カード以外のカードの使用をお勧めします。
「アカウントに資金を追加」と表示されたら「Add funds」をクリックします。

残高(クレジット)に€10が追加されます。

これでアップグレードが完了です。
アップグレードが完了すると以下のことが可能になります。
- 認証済みでない電話番号へのSMS送信
- SMSメッセージの下部に「FREE SMS MENO, TEST MESSAGE」という透かしがはいらなくなる