2015-07-11 13 views
15

Sto cercando di utilizzare API di ricerca di Twilio per ottenere determinate proprietà di un numero di cellulare tramite PHP ... con molto poco successo:L'API di ricerca Twilio non funziona?

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

Si noti che questo è il codice di esempio presente nel loro 'Getting Started' pagina here.

Prendendo uno sguardo al $number nel debugger, posso confermare che sta tornando qualcosa:

enter image description here

La proprietà evidenziata dell'oggetto è semplicemente ricorsiva senza nuove informazioni.

Tentativo di valutazione $number->phone_number restituisce null. Ho provato questo con forse una mezza dozzina di numeri completamente validi ora e questa è l'unica risposta che ottengo.

Tentativo di json_encode($number) restituisce false.

Non ho idea del motivo per cui questo non funziona, ma sarebbe utile se potessi sapere cosa sto facendo male.

risposta

5

Sto solo andando avanti e presumo che i numeri di telefono che hai provato non provengano né dagli Stati Uniti, né dal formato internazionale.

Da Twilio di Lookups Quickstart Tutorial:

Ti consigliamo di includere il codice paese del numero di telefono che desideri venga formattato. Se non incluso, il prefisso internazionale verrà impostato come predefinito negli Stati Uniti.

Così la vostra ricerca dovrebbe probabilmente essere simile:

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

Se i numeri di telefono sono dagli Stati Uniti, in formato internazionale, o se quanto sopra ancora non funziona, provare se la ricerca ha esito positivo su Twilio's web interface (avrete bisogno del prefisso internazionale lì).

In caso affermativo, la libreria software potrebbe essere danneggiata o l'account Twilio potrebbe avere diritti di accesso errati/non funzionanti.

Se la ricerca Web ha esito negativo, è necessario contact Twilio e segnalare il problema.

+0

Posso confermare i numeri che sto utilizzando funzionano con l'interfaccia web Twilio e che il mio account è attivo (non dovrebbe importare poiché la chiamata API è gratuita a prescindere). Controllerò di nuovo i miei diritti di accesso stasera ... – ReactingToAngularVues

10

sarei stato, inoltre, non successo con il loro codice definito così ho usato CURL per afferrare i loro metodi API e ha funzionato come un fascino per me, si può provare seguente codice per ottenere il necessario

$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>"; 

E ' si tornerà alcuni parametri (country_code, national_format, carrier)

+0

Sì, quindi funziona. È un peccato che, nonostante l'invio di e-mail e di messaggistica Twilio, non abbia ricevuto risposta da loro sul motivo per cui la loro libreria PHP per l'API di ricerca non è funzionale. – ReactingToAngularVues

3

Ora 9-6-2016 e ancora non hanno fissato la loro libreria PHP ...

tuttavia qui è quello che ha funzionato per me. Se desideri maggiori informazioni come nome del chiamante, ecc. Devi prima abilitarlo nella tua bacheca di 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;