https://d226lax1qjow5r.cloudfront.net/blog/blogposts/sending-sms-messages-with-php/sms-messages_php.png

PHPでSMSメッセージを送信する

最終更新日 January 29, 2024

所要時間:1 分

この記事は2025年8月に更新されました。

このチュートリアルでは、できるだけ少ないPHP行数でSMSメッセージを送信します。第一に、生のスクリプトを使用し、第二に、最小限のウェブアプリケーションフレームワークを使用します。

前提条件

このチュートリアルを完了するには、Vonage APIアカウントが必要です。

生のPHPでテキストを送信する方法

まず、新しいComposerプロジェクトを作成し、Vonage PHP SDKを取り込みます。コマンドラインを使って、以下を追加する:

mkdir vonage-sms
cd vonage-sms
composer init

コンポーザーはあなたに一連の質問をします。私たちは最低限の努力しかしていないので、これらはすべてデフォルトのままで構いません。このプロセスで composer.jsonファイルが作成されます。これでVonage PHP SDKを追加できます:

composer require vonage/client

さて、スクリプトを作成しよう。

touch send-sms.php

新しいPHPファイルを開き、Composerのオートロードが引き込まれていることを確認する:

<?php

require_once './vendor/autoload.php';

SMSを送信するには、3つのものが必要だ:

  • Vonage Dashboardから取得した認証情報一式

  • クライアントオブジェクト

  • 送信するテキスト

これを踏まえて、最終的なコードの行を以下に示す:

$credentials = new \Vonage\Client\Credentials\Basic(YOUR_API_KEY, YOUR_API_SECRET);
$client = new Vonage\Client($credentials);
$message = new Vonage\Messages\Channel\SMS\SMSText(
  YOUR_NUMBER,
  'Vonage',
  'Hello from Vonage!'
);

$client->messages()->send($message);

必要な詳細を定数変数のプレースホルダーに差し込み、送信を押す:

Screenshot of a phone device showing the recieved SMSOur SMS has been sent!

4行のコードはなかなか良い!第二の部分は、これを基本的なウェブ・フレームワークにプラグインして、上記のようにハードコーディングする代わりにメッセージをPOSTできるようにすることだ。

SMSを送信する方法。スリムフレームワーク

2つ目の例では スリム・フレームワークを使うので、Composer と一緒にインストールしてください:

composer require slim/slim:"4".*
composer require slim/psr7

2番目のコマンドは、SlimのPSR-7(Request Interface)実装をインストールします。テキストを含む JSON ボディの POST リクエストを受け取るルートを作成します。

以下に修正した send-sms.phpファイルです:

<?php

use Slim\Psr7\Request;
use Slim\Psr7\Response;

require_once '../vendor/autoload.php';

$app = \Slim\Factory\AppFactory::create();

$app->post('/send', function (Request $request, Response $response) {
   $rawBody = $request->getBody()->getContents();
   $requestData = json_decode($rawBody);
   $text = $requestData->text;

   $credentials = new \Vonage\Client\Credentials\Basic('232130c9', 's09IJad98fa0t9j09ad8fa90s');
   $client = new Vonage\Client($credentials);
   $message = new Vonage\Messages\Channel\SMS\SMSText(
     YOUR_NUMBER,
     'Vonage',
     $text
);

   $client->messages()->send($message);

   $response->getBody()->write("Vonage sent this text!");
   return $response;
});

$app->run();

このコードを実行する代わりに、ウェブ・プラットフォームを使ってモッキングを行います。そのため、PHPの組み込みウェブサーバーを使って、コマンドラインから開発環境を起動します:

php -S localhost:8888 -t send-php.php

メッセージを送信するには、POSTリクエストを簡単に送信できるHTTPツーリングクライアントが必要だ。 インソムニアを選んだが Postmanを使うこともできるし、生のcURLリクエストを使うこともできる。

Screenshot of Insomnia sending a POST requestAPI Tooling is super helpful

結論

これで、メッセージテキストをサーバーに送信して処理を完了させるルートができた。もちろん、JSONペイロードにさらにキーを追加して、送信元と送信先の携帯電話番号を追加することもできる。ここから何かを作りたいですか?私たちの Laravelインテグレーションまたは、SymfonyでこのAPIを使ってメッセージを送信する方法をご覧ください。

ご質問がある場合、またはあなたが作っているものを共有したい場合は、こちらをクリックしてください。

最新の開発者向けニュース、ヒント、イベント情報をお届けします。

その他のリソース

フェイルオーバーでPHPからSMSを送信する:カップケーキベーカリー

正しい型安全性 - PHPの配列ハッキング

スクラブアップPHPStanでPHPアプリケーションをクリーニング

Vonage PHP SDK

シェア:

https://a.storyblok.com/f/270183/400x385/12b3020c69/james-seconde.png
James SecondeシニアPHPデベロッパー

スタンダップ・コメディーの学位論文を持つ俳優の訓練を受け、ミートアップ・シーンを経てPHP開発に携わるようになった。技術について話したり書いたり、レコード・コレクションから変わったレコードを再生したり買ったりしています。