Twilio 查找 API 不工作?

Twilio lookup API not working?

我正在尝试使用 Twilio 的查找 API 通过 PHP 获取手机号码的某些属性...但收效甚微:

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

请注意,这是他们的 'Getting Started' 页面 here 中的示例代码。

通过查看调试器中的 $number,我可以确认它正在返回一些东西:

对象的突出显示属性只是递归的,没有新信息。

正在尝试评估 $number->phone_number returns null。我已经用大约六个完全有效的数字尝试过这个,这是我得到的唯一回应。

正在尝试 json_encode($number) returns false

我不知道为什么这不起作用,但如果我能知道我做错了什么会很有帮助。

我将继续假设您试过的 phone 号码既不是来自美国,也不是国际格式。

来自 Twilio 的 Lookups Quickstart Tutorial

You'll want to include the country code of the phone number that you would like formatted. If not included, the country code will default to the US.

所以您的查找应该如下所示:

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

如果 phone 号码 来自美国的国际格式,或者如果上述仍然不起作用,请尝试在 Twilio 的 [= 上查找是否成功13=](你需要国际前缀)。

如果是,您的软件库可能已损坏,或者您的 Twilio 帐户可能具有 incorrect/broken 访问权限。

如果网络查找也失败,您应该contact Twilio并报告问题。

我也不会成功定义他们的代码,所以我使用 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>";

它会return你几个参数(country_code,national_format,carrier)

现在是 2016 年 9 月 6 日,他们仍然没有修复他们的 PHP 库...

None less 这对我有用。如果您需要更多信息,例如来电者姓名等,您必须先在您的 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;