PHPを使用しTwilioアカウントの残高を確認する方法

January 13, 2021
執筆者
レビュー担当者
Diane Phan
Twilion

check-twilio-account-balance-php

この記事はMarcus Battleが執筆したこちらの記事(英語)を日本語訳したものです。

PHPを使用しTwilioアカウントの残高を確認する方法

開発者の皆さんは、コミュニケーションベースのアプリを開発する際に重要となる、コストのリアルタイム監視について気にしていますか。例えばSMSの一括送信アプリケーションを構築中で、あるメッセージを1,000人の購読者に送る必要があるときを想像します。このSMSには(米国では)$7.50($.0075/メッセージ)かかると分かりますが、それを送信するためにアカウントで利用可能な残高がどのくらいあるか分かりますか。答えはコンソールから確認することができますが、アプリ内でAPIを使用する必要があるたびにTwilioアカウントにログインするのは手間です。

APIを使用する前にコストを計算するPHPアプリケーションを構築する場合には、このチュートリアルが最適です。アプリケーションは、SMSを送信する前に残高を確認したり、または通話分数の使用が多すぎる場合に警告したりするものかもしれません。ユースケースにかかわらず、この手短なチュートリアルは、PHPアプリへのアカウント残高の連携に役立ちます。

はじめに

このチュートリアルでは、ステップ数を最小限にするようにしています。作業開始に当たり、多くの要件や、フレームワークのインストールは必要ありません。その代わりに、以下の設定とインストールを予め確認してください。

またこの時点で、PHPがローカルですでにインストールされていることを前提とします。

プロジェクトフォルダの設定

プロジェクトを成功させるには、整理されたフォルダ構成が重要です。このプロジェクトは、残高を確認するファイルを1つ含むのみですが、サポートするライブラリを収納するためのフォルダが必要です。このチュートリアルを完了すると、フォルダには以下が含まれます。

  • Balance.php - 残高をリクエストするスクリプトを含むファイル。
  • composer.json - Composerファイル。
  • Guzzle HTTP Client

コマンドラインでtwilio-balanceという新しいディレクトリを作成し、以下のコマンドを使用してそのディレクトリに移動します。

$ mkdir twilio-balance
$ cd twilio-balance

コードを記述するためのbalance.phpファイルを作成します。

$ touch balance.php

このプロジェクトの依存関係を管理するには、Composerが必要です。新しいcomposer.jsonファイルをtwilio-balanceディレクトリで初期化することにより、Composerをインストールします。依存関係(require)をインタラクティブに定義するかどうかを尋ねられた際には、「No」を意味するnを入力します。

$ composer init

Guzzle HTTP Clientのインストール

Twilioアカウントからの残高は、通常cURL、つまりさまざまなプロトコルを使用して異なるタイプのサーバーと通信することを可能にするライブラリを使用することにより取得されます。cURLリクエストを手動で実行することはいつでもできますが、非常に手間がかかりデバッグも困難です。その代わりに、「cURLがインストールされていない場合に、PHPストリームラッパーを使用することによりHTTPリクエストを送信する」Guzzleと呼ばれるパッケージを使用します。

$ composer require guzzlehttp/guzzle

Guzzleをプロジェクト内で使用し、Twilio APIにHTTPリクエストを送信できるようになりました。

エンドポイントを構築する

SDK内では公式サポートはありませんが、Twilio APIはBalances.jsonエンドポイントを使用し、リアルタイムで残高を確認する方法を提供しています。

https://api.twilio.com/2010-04-01/Accounts/ACXXXXXXXXXXXXXX/Balance.json

このエンドポイントは、Twilio ConsoleにあるTwilioAccount SIDAuth Tokenを使用したベーシック認証を必要とします。さらに、URLの一部としてAccount SIDを含むようにカスタマイズする必要もあります。

任意のコードエディタでbalance.phpを開き、以下の要件が満たされていることを確認します。

  1. ファイルの先頭部分でComposerのオートローダーを呼び出します。
  2. 後で使用できるようにGuzzleHttp\Client名前空間を宣言します。
  3. Account SIDを格納する$account_sid数と、Auth Tokenを格納する$auth_tokenという新しい変数をそれぞれ定義します。
  4. エンドポイント文字列にある、Account SIDのプレースホルダー、ACXXXXXXXXXXXXXXX$account_sidに置き換えます。

以下は、ここまでの手順を示すコードです。

<?php 

require 'vendor/autoload.php';

use GuzzleHttp\Client;

$account_sid = "ACXXXXXXXXXXXXXXX";
$auth_token = "";
$endpoint = "https://api.twilio.com/2010-04-01/Accounts/$account_sid/Balance.json";

注意: Account SIDとAuth Tokenは、本番環境では絶対に使用しないでください。

Twilioアカウント残高のリクエスト

これでエンドポイントに接続する準備ができました。以下の手順に従います。

  1. $auth_tokenの値を入力します。
  2. 新しいGuzzleHttp Clientを定義します。
  3. $endpointにベーシック認証リクエストを実行します。この時、認証情報として$account_sid$auth_tokenを使用します。
// Define the Guzzle Client 
$client = new Client(); 
$response = $client->get($endpoint, [ 
'auth' => [ 
$account_sid, 
$auth_token 
] 
]);

あと少しで完了です。信じられないかもしれませんが、本当です!

最後のステップは、$responseを読み、アカウント残高を確認します。Balance.jsonエンドポイントは、残高と通貨の両データを返します。

echo $response->getBody();

コマンドラインを再度開き(またはブラウザを使用)、balance.phpスクリプトを実行し、残高を取得します。

$ php balance.php

$responseの本文はJSONを返し、これにはcurrencybalanceaccount_sidが含まれます。

{"currency": "USD", "balance": "1.83164", "account_sid": "ACXXXXXXXXXXXXXX"}

最後のまとめ

このチュートリアルでは、以下の方法を学びました。

  • PHPプロジェクト内でComposerを初期化する。
  • Guzzleでベーシック認証を使用し、安全にエンドポイントからデータをリクエストする。
  • Twilioアカウント残高を取得する。

レスポンスはJSON形式で返されます。このデータを使用するには、json_decode()関数によりデータを変数に保存する必要があります。これにより現在使用可能な残高がオブジェクトで提供され、他の計算に使用したり、ダッシュボードに表示したりすることができます。

十分な残高があるといいのですが…それでは皆さんの作品を拝見するのを楽しみにしています。

Marcus Battleは、TwilioのDeveloper Voicesのシニアマネージャーです。彼は、高品質のチュートリアルを作成することにより、開発者を支援ならびに結集し、コミュニケーションの未来を築いています。以下の連絡先からご連絡いただけます。