【GAS】APIで簡単にSMSを送信する方法|Vonage(旧Nexmo)とは何か?使い方・料金(Google Apps Script)

Apps Script apps script GAS-prograshi(プロぐらし)-kv AppsScript
記事内に広告が含まれていることがあります。
[PR]

Vonage(旧Nexmo)を活用すると、簡単にSMSを指定した電話番号に送信できます。

特にGoogle Apps Script(GAS)との連携は、Webアプリや通知システムの構築に役立つ便利な方法です。

本記事では、GASを使ってVonage APIを利用し、SMSを送信する手順を解説しています。

Vonageの基本概要から、GASでの具体的なコード例、料金体系、無料トライアルでの制限事項までご紹介しています。簡単に実装できる方法を学び、効率的な通知システムを構築しましょう。



Vonageとは何か?

Vonageは、クラウド型のコミュニケーションプラットフォームを提供するアメリカの企業です。「ボネージ」と読みます。

SMSやMMSのメッセージを送受信したり、ビデオ会議やチャットを利用したりすることができます。

Vonageのサービス概要




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ログ」に表示されます。



(参考)Vongage 日本の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」という透かしがはいらなくなる



タイトルとURLをコピーしました