API поиска Twilio не работает?

Я пытаюсь использовать Twilio Lookup API для получения определенных свойств мобильного номера через PHP... с очень небольшим успехом:

    $twilioClient = new Lookups_Services_Twilio(Credential::TwilioSID, Credential::TwilioToken);
    $number = $twilioClient->phone_numbers->get($someNumber);

Обратите внимание, что это пример кода, присутствующего на странице "Приступая к работе" здесь.

Взглянув на $number в отладчике, я могу подтвердить, что он что-то возвращает:

enter image description here

Выделенное свойство объекта просто рекурсивно без новой информации.

Попытка оценить $number->phone_number возвращает null. Я пробовал это, возможно, с полдюжины вполне допустимых чисел, и это единственный ответ, который я получаю.

Попытка json_encode($number) возвращает false.

Я понятия не имею, почему это не работает, но было бы полезно, если бы я мог знать, что я делаю неправильно.

Ответы

Ответ 1

Я собираюсь пойти дальше и предположить, что номера телефонов, которые вы пробовали, не являются ни из США, ни в международном формате.

Из Twilio Поиск в Quickstart Учебник:

Вы хотите указать код страны для номера телефона, который вы хотите отформатировать. Если он не включен, код страны будет по умолчанию для США.

Итак, ваш поиск должен выглядеть следующим образом:

$number = $twilioClient->phone_numbers->get($someNumber, array('CountryCode' => 'NZ'));

Если номера телефонов указаны из США, в международном формате или если выше все еще не работает, попробуйте выполнить поиск в Twilio web интерфейс (здесь вам понадобится международный префикс).

Если это так, ваша библиотека программного обеспечения может быть повреждена или ваша учетная запись Twilio может иметь неправильные/неработающие права доступа.

Если поиск в Интернете также терпит неудачу, вы должны связаться с Twilio и сообщить о проблеме.

Ответ 2

Я бы тоже не успел с их кодом, поэтому я использовал CURL, чтобы захватить их методы API, и это сработало как прелесть для меня, вы можете попробовать следующий код, который вам понадобится

    $base_url           =       "https://lookups.twilio.com/v1/PhoneNumbers/+1XXXXXXXXXX";
    $ch             =       curl_init($base_url);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, "$account_sid:$auth_token");

$response           =       curl_exec($ch);
$response           =       json_decode($response);

echo "<pre>";   print_r($response); echo "</pre>";

Он вернет вам несколько параметров (country_code, national_format, carrier)

Ответ 3

Теперь 9-6-2016, и они все еще не исправили свою библиотеку PHP...

Тем не менее, это то, что сработало для меня. Если вам нужна дополнительная информация, например, имя вызывающего абонента и т.д., Вы должны сначала включить это в своей панели инструментов twilio.

require 'includes/twilio/Services/Twilio.php';

// Your Account Sid and Auth Token from twilio.com/user/account
$sid = "YOUR-SID";
$token = "YOUR-TOKEN";
$client = new Lookups_Services_Twilio($sid, $token);


// Lookup
$phoneNumber = rawurlencode("(000) 000-0000");
$full_path = $client->phone_numbers->uri . "/$phoneNumber" . "?CountryCode=US&Type=carrier&Type=caller-name";
$number = new $client->phone_numbers->instance_name($client, $full_path);

echo "Caller name:" . $number->caller_name->caller_name;
echo "<br>";
echo "Caller type:" . $number->caller_name->caller_type;
echo "<br>";
echo "Carrier type:" . $number->carrier->type . "\r\n";
echo "<br>";
echo "Carrier name:" . $number->carrier->name;
echo "<br>";
echo "Phone number:" . $number->phone_number;
echo "<br>";
echo "Country code:" . $number->country_code;