REST API経由で電話番号の管理を自由自在に、検索はもちろん購入、更新、削除も可能です。
新しい電話番号の検索や購入はもちろんのこと、契約中の電話番号の設定変更、削除、リストの出力など、電話番号に関する情報を管理できます。
今回はREST API経由で電話番号を管理する方法を紹介します!
本ブログではTwilioのPHPライブラリーを使います。
PHPライブラリーについては下のブログをご覧ください。
Twilioのアプリケーションをより柔軟に、より手軽に、Twilio Helper ライブラリ。
TwiML(Twilio マークアップ言語)についてはこちら!
TwiMLTM: Twilio マークアップ言語
購入可能な電話番号検索
8行目に国コード「JP(日本)」を設定し、9行目に検索する電話番号の一部を設定します。 12行目の「available_phone_nubers」より検索結果が検索され、今現在有効な電話番号が出力されます。<?php
require_once('../Services/Twilio.php'); // Loads the library
$sid = "ACxxxxxxxxxxxxxxxxxxx";
$token = "yyyyyyyyyyyyyyyyyy";
$client = new Services_Twilio($sid, $token);
$numbers = $client->account->available_phone_numbers->getList('JP', 'Local', array(
"Contains" => "+8150*******"
));
foreach($numbers->available_phone_numbers as $number) {
echo $number->phone_number . "\n";
}
?>
電話番号の購入
購入する際にはこちらの情報を設定できます。
・FriendlyNama:電話番号のテキスト識別文字列
・VoiceUrl:電話番号のTwiML URLを設定します。(Request URL)
・PhoneNumber:購入する電話番号を設定します。
・VoiceMethod:POSTもしくはGETを設定します。
このように電話番号の基本情報を設定し、購入することが可能です。
<?php
require_once('../Services/Twilio.php'); // Loads the library
$sid = "ACxxxxxxxxxxxxxxx";
$token = "yyyyyyyyyyyyyyy";
$client = new Services_Twilio($sid, $token);
$number = $client->account->incoming_phone_numbers->create(array(
"FriendlyName" => "REST電話番号購入テスト",
"VoiceUrl" => "http://xxx.xxx.xxx.xxx/twiml.xml",
"PhoneNumber" => "+8150xxxxyyyy",
"VoiceMethod" => "GET"
));
?>
契約中の電話番号リストを検索
契約中(利用可能)の電話番号を検索してみます。 9行目の「incoming_phone_numbers」よりアカウントに設定されている有効な電話番号が検索されます。 10行目のphone_numberから電話番号が、11行目のsidからphone number sidが出力されます。※ phone number sid
phone number sidは電話番号を管理する固有のsidを意味します。
この後も出ますが、このsidを利用してより細かな電話番号の操作が可能になります。
<?php
require_once('../Services/Twilio.php'); // Loads the library
$sid = "ACxxxxxxxxxxxxx";
$token = "yyyyyyyyyyyyyyy";
$client = new Services_Twilio($sid, $token);
// Loop over the list of numbers and echo a property for each one
foreach ($client->account->incoming_phone_numbers as $number) {
echo $number->phone_number . "\n";
echo $number->sid . "\n";
}
?>
電話番号の変更と削除
電話番号設定情報を更新してみたます。 まず、電話番号リストを出して、その中更新対象の電話番号に 12行目の updateから番号の設定情報を更新できます。 VoiceUrl(Request URL)はもちろん、フレンドリーネーム、メソッドなど、電話番号を構成している設定情報は全て更新可能です。<?php
require_once('../Services/Twilio.php'); // Loads the library
// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "ACxxxxxxxxxxxx";
$token = "yyyyyyyyyyyy";
$client = new Services_Twilio($sid, $token);
foreach ($client->account->incoming_phone_numbers as $number) {
if ( $number->phone_number == "+815031717476") {
$number = $client->account->incoming_phone_numbers->get($number->sid);
$number->update(array(
"VoiceUrl" => "http://xxx.xxx.xxx.xxx/twiml.xml",
"FriendlyName" => "フレンドリーネームが変更されます。"
));
}
}
?>
削除は、11行目の deleteから削除可能です。
ここでも、電話番号の sidを使って番号を削除しています。
<?php
require_once('../Services/Twilio.php'); // Loads the library
$sid = "ACxxxxxxxxxxxxxxxx";
$token = "yyyyyyyyyyyy";
$client = new Services_Twilio($sid, $token);
foreach ($client->account->incoming_phone_numbers as $number) {
if ( $number->phone_number == "+815031717476") {
echo "電話番号:" . $number->phone_number . "を削除します。\n";
$client->account->incoming_phone_numbers->delete($number->sid);
}
}
?>
最後に
このようにREST APIを経由しますと、ダッシュボードにログインする必要もなく、みなさん各自の電話番号管理システムの開発が可能になります。電話番号の購入は、購入された時点で課金が発生しますので、ご注意ください。