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アカウントが必要です。

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.

生の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を使ってメッセージを送信する方法をご覧ください。

質問や共有したいことがありますか?Vonageコミュニティ VonageコミュニティSlackまたは 開発者向けニュースレターでフォローしてください。 X(旧Twitter)YouTubeチャンネル YouTubeチャンネルビデオチュートリアルを購読する。 LinkedInのVonage開発者ページ開発者が学び、コミュニティとつながるためのスペースです。つながりを維持し、進捗状況を共有し、最新の開発者向けニュース、ヒント、イベントを把握してください!

その他のリソース

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

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

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

Vonage PHP SDK

シェア:

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

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