
シェア:
マイケルはポリグロット・ソフトウェア・エンジニアであり、システムの複雑性を軽減し、より予測可能なものにすることに尽力している。さまざまな言語やツールを使いこなし、ユーザーグループやカンファレンスで世界中の聴衆と技術的な専門知識を共有している。日々、マイケルはVonageの元開発者支持者であり、あらゆるテクノロジーについて学び、教え、書くことに時間を費やしている。
PHPでSMSを受信する
イントロ
以前に PHPでSMSを送信するを使った SMS の送信について説明しましたが、それは話の半分にすぎません。この記事では、SMSを送信できるようにする方法を説明します。
このブログ記事のソースコードは Github.
前提条件
この記事を読む前にPHPをインストールしておく必要があります。私はPHP 7.4を使っていますが、このコードはPHP 7.3以上で動作するはずです。また Composerが必要です。
最後に Vonage CLIをインストールする必要があります。このCLIを使って電話番号を購入し、Vonageアカウントを新しいアプリケーションに設定します。
Vonage API Account
To complete this tutorial, you will need a Vonage API account. If you don’t have one already, you can sign up today and start building with free credit. Once you have an account, you can find your API Key and API Secret at the top of the Vonage API Dashboard.
This tutorial also uses a virtual phone number. To purchase one, go to Numbers > Buy Numbers and search for one that meets your needs.
PHPでSMSを受信する
Vonageはあなたが所有する電話番号のSMSを受信すると、SMSに関するすべての情報を含むあなたが設定したURLにHTTPリクエストを行います。(このURLの設定はまだ心配しないでください。)
受信する SMS コンテンツを受信するために、ここでは スリム・フレームワークでインストールしましょう。 composer:
SMSを受信すると、Vonageがコンソールに提供するすべての情報をログアウトします。現実の世界では、これをファイルやデータベースに保存することができる。
Vonageは GETまたは POSTアカウントの設定に応じて、Vonageはデータをアプリケーションにリクエストします。 HTTP Method ダッシュボード).この投稿では、両方のHTTPメソッドを扱えるアプリケーションを書きます:
という名前のファイルを作成する。 index.phpという名前のファイルを作成する。私たちの Slimアプリをブートストラップし、HTTP 204レスポンスを返すハンドラーを定義します。 GETまたは POSTを受け取るたびにこのハンドラーを使用するよう Slim に指示します。 /webhooks/inbound-sms:
<?php
use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;
use Slim\Factory\AppFactory;
require 'vendor/autoload.php';
$app = AppFactory::create();
$handler = function (Request $request, Response $response) {
return $response->withStatus(204);
};
$app->map(['GET', 'POST'], '/webhooks/inbound-sms', $handler);
$app->run();
このコードで私たちがしていることは、すべてがOKであることを示す 204レスポンス・コードを返すだけである。受け取ったパラメータをログに記録するためには、以下のコードによって返されたデータがあるかどうかをチェックする必要がある。 \Vonage\SMS\Webhook\Factory::createFromRequest($request).
この時点で、すべてのパラメーターは $smsという変数に格納されている。 error_log('From: ' . $sms->getMsisdn() . ' message: ' . $sms->getText());.これをまとめると $handerは以下のようになる:
$handler = function (Request $request, Response $response) {
$sms = \Vonage\SMS\Webhook\Factory::createFromRequest($request);
error_log('From: ' . $sms->getMsisdn() . ' message: ' . $sms->getText());
return $response->withStatus(204);
};
このファイルを保存し、新しいターミナル・ウィンドウを開きます。組み込みのPHPサーバーを起動し、ポート8000でアプリケーションを提供しましょう。
php -t . -S localhost:8000もし http://localhost:8000/webhook/inbound-sms?msisdn=14155550100&text=Hello+Worldをご覧ください。 fromと textが表示されているはずです。
本当にそれだけだ。VonageはSMSをHTTPリクエストに変換してくれるので、SMSの受信はとても簡単です。
ngrokでアプリケーションを公開する
アプリケーションは完成しましたが、私たちの仕事はまだ終わっていません。アプリケーションにHTTPリクエストを送るために、VonageはアプリケーションがどのURLで実行されているかを知る必要があります。
これから ngrokを使ってローカルアプリケーションをインターネットに公開する。実行する ngrok http 8000を実行し ngrok生成されたURLをメモしておいてください。 http://abc123.ngrok.io).
Vonageアカウントの設定
Vonageでは、各電話番号に異なるコールバックURLを設定し、SMSを送信することができます。
まずはVonage CLIを使って、テストに使える電話番号を購入してみましょう。まず、購入可能な電話番号を選びます:
そしてそれを買う:
ここで、受信SMSを送信するURLで新しいアプリケーションを作成します:
さて、番号をアプリケーションにリンクさせよう:
この時点で、Vonage番号にSMSを送信し、端末に表示されるのを見ることができます。ネットワーク遅延のため数分かかるかもしれませんが、すぐに届くはずです!
結論
たった20行のコードで、私たちはゼロからアプリケーションで受信SMSメッセージを受信できるようになりました。
開発者向けドキュメントには 受信 SMS メッセージの受信に関する詳細な情報があります。Vonage があなたに送る可能性のあるすべてのパラメータの説明も含まれています。
この投稿についてご質問がある場合は、以下までお気軽にお問い合わせください。 VonageコミュニティのSlackチャンネルにご参加ください。



