勉強したことのメモ

Webエンジニア / プログラマが勉強したことのメモ。

VONAGEとPHPでショートメッセージ(SMS)を送信する方法

  PHP

PHPからショートメッセージ(SMS)を送信してみたかった。また、SMS送信は基本的に他サービスとの連携且つ有料になると思うが、テスト段階なので無料で試してみたい。有名どころのTwilioは微妙に分かりにくかったが、VONAGEというサービスが分かりやすかったので実装方法を以下にメモ。

 

VONAGE

公式サイト

https://www.vonagebusiness.jp/

 

事前準備

アカウント作成

以下ページ右上の「無料お試し」からアカウントを作成する。

https://www.vonagebusiness.jp/communications-apis/sms/

ライブラリのインストール

サーバにSSH接続し以下コマンドでライブラリをインストールする。

composer require vonage/client

PHP用のソースコードをコピーしておく

以下ページよりPHP用のソースコードをコピーしておく。

https://dashboard.nexmo.com/getting-started/sms

 

実装方法

ソースコード

<?php
require 'vendor/autoload.php';

$basic  = new \Vonage\Client\Credentials\Basic("xxxxxxx", "xxxxxxx"); //「xxxxxxx」部分は管理画面からコピペすると記述されている筈
$client = new \Vonage\Client($basic);

define('BRAND_NAME', 'sendname1234'); //送信者名。恐らく日本語不可

$response = $client->sms()->send(
    new \Vonage\SMS\Message\SMS("xxxxxxxx", BRAND_NAME, 'テストメッセージ', 'unicode') //「xxxxxxx」部分は管理画面からコピペすると記述されている筈。また、日本語メッセージを送信したい場合は第4引数が必要
);

$message = $response->current();

if ($message->getStatus() == 0) {
    echo "The message was sent successfully\n";
} else {
    echo "The message failed with status: " . $message->getStatus() . "\n";
}

解説等

以下ページよりPHP用のソースコードそのままだとBRAND_NAME(送信者名)が指定されていないためエラーが出る筈。そのためBRAND_NAMEを指定すること。尚、送信者名は日本語不可っぽい。

https://dashboard.nexmo.com/getting-started/sms

また、送信メッセージに日本語を指定する場合は「new \Vonage\SMS\Message\SMS」の第4引数にunicodeを指定する必要あり。未指定だと「????」のように文字化けする。

尚、無料版(トライアル版)だと最初に登録した電話番号にのみ送信でき、他の番号には送信できない。

 

その他

送信料について

以下ページによると1通あたり$0.08856かかるとのこと(送信料は定期的に更新される)。

https://www.vonagebusiness.jp/communications-apis/sms/pricing/

仮に1ドル140円とすると約12.4円 / 通になる。

 

所感

そもそもの送信料の相場を知らなかったが1通10円以上って結構するなぁと思った。

プレゼンとかする時用に価格感は覚えておきたいところ。

 - PHP

  関連記事

PHPで配列のキーの最大値を取得する方法

配列のキーに整数値が入っていて、その中から最大値を取得したいケースがあった。調べ ...

PHPとPAY.JPを用いてサイト内にクレカ決済及びキャンセル機能を実装する方法

先日PHPとStripeを用いてサイト内にクレカ決済及びキャンセル機能を実装する ...

PHPでの$_REQUESTは色々危険

extract($_REQUEST)はかなり怖いよ、という話が最近あった。 でき ...

PHPMailerでメールを送信する際にTLS / SSL暗号化させる方法

PHPMailerでメールを送信したところGmailで確認すると赤い鍵のようなア ...

PHPで「php-qrcode-detector-decoder」ライブラリを使用してQRコードをデコードする方法

PHPでQRコードの画像をデコードし、値を変数等に格納したい。何とかならないか調 ...