PHPを使用しTwilioアカウントの残高を確認する方法
読む所要時間: 9 分
PHPを使用しTwilioアカウントの残高を確認する方法
開発者の皆さんは、コミュニケーションベースのアプリを開発する際に重要となる、コストのリアルタイム監視について気にしていますか。例えばSMSの一括送信アプリケーションを構築中で、あるメッセージを1,000人の購読者に送る必要があるときを想像します。このSMSには(米国では)$7.50($.0075/メッセージ)かかると分かりますが、それを送信するためにアカウントで利用可能な残高がどのくらいあるか分かりますか。答えはコンソールから確認することができますが、アプリ内でAPIを使用する必要があるたびにTwilioアカウントにログインするのは手間です。
APIを使用する前にコストを計算するPHPアプリケーションを構築する場合には、このチュートリアルが最適です。アプリケーションは、SMSを送信する前に残高を確認したり、または通話分数の使用が多すぎる場合に警告したりするものかもしれません。ユースケースにかかわらず、この手短なチュートリアルは、PHPアプリへのアカウント残高の連携に役立ちます。
はじめに
このチュートリアルでは、ステップ数を最小限にするようにしています。作業開始に当たり、多くの要件や、フレームワークのインストールは必要ありません。その代わりに、以下の設定とインストールを予め確認してください。
- Twilioアカウント(まだお持ちでない場合には、$10を後でアカウントに追加できるリンクを使って開始できます)− すでにアカウントを設定してある場合には、ログインしてAccount SIDとAuth Tokenをお使いのコンピューターの安全な場所にコピーしてください。
- Composer(PHP依存関係マネージャー) − グローバルにインストールされていること。
またこの時点で、PHPがローカルですでにインストールされていることを前提とします。
プロジェクトフォルダの設定
プロジェクトを成功させるには、整理されたフォルダ構成が重要です。このプロジェクトは、残高を確認するファイルを1つ含むのみですが、サポートするライブラリを収納するためのフォルダが必要です。このチュートリアルを完了すると、フォルダには以下が含まれます。
- Balance.php - 残高をリクエストするスクリプトを含むファイル。
- composer.json - Composerファイル。
- Guzzle HTTP Client
コマンドラインでtwilio-balanceという新しいディレクトリを作成し、以下のコマンドを使用してそのディレクトリに移動します。
コードを記述するためのbalance.phpファイルを作成します。
このプロジェクトの依存関係を管理するには、Composerが必要です。新しいcomposer.jsonファイルをtwilio-balanceディレクトリで初期化することにより、Composerをインストールします。依存関係(require)をインタラクティブに定義するかどうかを尋ねられた際には、「No」を意味するn
を入力します。
Guzzle HTTP Clientのインストール
Twilioアカウントからの残高は、通常cURL、つまりさまざまなプロトコルを使用して異なるタイプのサーバーと通信することを可能にするライブラリを使用することにより取得されます。cURLリクエストを手動で実行することはいつでもできますが、非常に手間がかかりデバッグも困難です。その代わりに、「cURLがインストールされていない場合に、PHPストリームラッパーを使用することによりHTTPリクエストを送信する」Guzzleと呼ばれるパッケージを使用します。
Guzzleをプロジェクト内で使用し、Twilio APIにHTTPリクエストを送信できるようになりました。
エンドポイントを構築する
SDK内では公式サポートはありませんが、Twilio APIはBalances.jsonエンドポイントを使用し、リアルタイムで残高を確認する方法を提供しています。
このエンドポイントは、Twilio ConsoleにあるTwilioAccount SIDとAuth Tokenを使用したベーシック認証を必要とします。さらに、URLの一部としてAccount SIDを含むようにカスタマイズする必要もあります。
任意のコードエディタでbalance.phpを開き、以下の要件が満たされていることを確認します。
- ファイルの先頭部分でComposerのオートローダーを呼び出します。
- 後で使用できるように
GuzzleHttp\Client
名前空間を宣言します。 - Account SIDを格納する
$account_sid
数と、Auth Tokenを格納する$auth_token
という新しい変数をそれぞれ定義します。 - エンドポイント文字列にある、Account SIDのプレースホルダー、
ACXXXXXXXXXXXXXXX
を$account_sid
に置き換えます。
以下は、ここまでの手順を示すコードです。
注意: Account SIDとAuth Tokenは、本番環境では絶対に使用しないでください。
Twilioアカウント残高のリクエスト
これでエンドポイントに接続する準備ができました。以下の手順に従います。
$auth_token
の値を入力します。- 新しいGuzzleHttp Clientを定義します。
$endpoint
にベーシック認証リクエストを実行します。この時、認証情報として$account_sid
と$auth_token
を使用します。
あと少しで完了です。信じられないかもしれませんが、本当です!
最後のステップは、$response
を読み、アカウント残高を確認します。Balance.jsonエンドポイントは、残高と通貨の両データを返します。
コマンドラインを再度開き(またはブラウザを使用)、balance.phpスクリプトを実行し、残高を取得します。
$response
の本文はJSONを返し、これにはcurrency
、balance
、account_sid
が含まれます。
最後のまとめ
このチュートリアルでは、以下の方法を学びました。
- PHPプロジェクト内でComposerを初期化する。
- Guzzleでベーシック認証を使用し、安全にエンドポイントからデータをリクエストする。
- Twilioアカウント残高を取得する。
レスポンスはJSON形式で返されます。このデータを使用するには、json_decode()関数によりデータを変数に保存する必要があります。これにより現在使用可能な残高がオブジェクトで提供され、他の計算に使用したり、ダッシュボードに表示したりすることができます。
十分な残高があるといいのですが…それでは皆さんの作品を拝見するのを楽しみにしています。
Marcus Battleは、TwilioのDeveloper Voicesのシニアマネージャーです。彼は、高品質のチュートリアルを作成することにより、開発者を支援ならびに結集し、コミュニケーションの未来を築いています。以下の連絡先からご連絡いただけます。
- Email: mbattle@twilio.com
- Twitter: @themarcusbattle
- Github: https://github.com/themarcusbattle