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

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

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

Обратите внимание, что это пример кода на их странице «Начало работы» здесь.

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

введите здесь описание изображения

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

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

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

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


person ReactingToAngularVues    schedule 11.07.2015    source источник


Ответы (3)


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

Из Краткого руководства по поиску Twilio:

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

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

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

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

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

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

person Siguza    schedule 13.07.2015
comment
Я могу подтвердить, что номера, которые я использую, работают с веб-интерфейсом Twilio и что моя учетная запись активна (это не имеет значения, поскольку вызов API в любом случае бесплатный). Сегодня вечером еще раз проверю свои права доступа... - person ReactingToAngularVues; 20.07.2015

Я бы также не добился успеха с их кодом, поэтому я использовал 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>";

Он вернет вам несколько параметров (код_страны, национальный_формат, оператор связи)

person Naveed Metlo    schedule 14.07.2015
comment
Ага, так это работает. Жаль, что, несмотря на отправку писем и сообщений Twilio, я не получил от них ответа, почему их PHP-библиотека для Lookup API не работает. - person ReactingToAngularVues; 18.07.2015

Сейчас 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;
person Ron Smart    schedule 07.09.2016