API за търсене на Twilio не работи?

Опитвам се да използвам API за търсене на Twilio, за да получа определени свойства на мобилен номер чрез 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>";

Ще ви върне няколко параметъра (country_code, national_format, operator)

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