【问题标题】:What is correct Twilio AddOns syntax for php REST client?php REST 客户端的正确 Twilio AddOns 语法是什么?
【发布时间】:2016-11-07 11:23:06
【问题描述】:

这里是 Twilio 和 php 的初学者:

我有:Twilio php helper、Twilio 帐户、Whitepages Pro AddOn 启用了查找并已成功检索“基本”查找数据,即“Carrier->Type”(“基本”查找不使用插件)

我需要:使用带有 Whitepages Pro AddOn 的 Twilio Rest Client 来检索单个电话号码的其他数据,即“standard_address_line1”。我不希望为所有来电启用每次通话 0.07 美元的插件,尽管我能够通过这种方式从插件接收这些数据。

Twilio API 文档很少。显示输出格式,但不显示 REST 客户端请求语法:WhitePagesPro AddOn Documentation

这是我尝试过的:

<?php

require 'vendor/autoload.php';
use Twilio\Rest\Client;

$client = new Client(ACxxxxxxxxxx,Tokenxxxxxxxx);

$number = $client->lookups
    ->phoneNumbers("+1xxxxxxxxxx")
    ->fetch(
        array("AddOns" => "whitepages_pro_caller_id")
    );

echo $number->
  results->
  whitepages_pro_caller_id->
  result->
  results[0]->
  associated_locations[0]->
  standard_address_line1;

//This syntax works for 'basic' lookup
//Returns: "landline"
//
//$number = $client->lookups
//  ->phoneNumbers("+1xxxxxxxxxx")
//  ->fetch(
//      array("type" => "carrier")
//  );
//
//echo $number->carrier['type'];

?>

引发错误:未捕获的异常“Twilio\Exceptions\TwilioException”带有消息“未知属性:结果”

我有点不知所措,我不知道如何进行调试。有任何 Twilio 专家吗?

理想情况下,我还想知道是否可以在请求中指定此特定数据,而不是遍历响应的多个级别以获得我需要的数据...

【问题讨论】:

  • 在 [Twilio API 文档][1] 中,发现 Lookup 还支持 Twilio Add-ons,以及“HTTP GET”标题下的“AddOns”查询参数。 cURL(邮递员)得到了我需要的数据。设置:Type=GET, URI=lookups.twilio.com/v1/PhoneNumbers/+1xxxxxxxxx, Authorization=Basic, Username=ACxxxxxxxxxxxxx, Password=token_xxxxxxxxx, PARAMS Key=AddOns, Value=whitepages_pro_caller_id 还想知道Twilio+php helper 可用于使这比 cURL 更简单(但同时也会这样做!)[1]:twilio.com/docs/api/lookups#lookups-query-parameters

标签: php rest syntax twilio


【解决方案1】:

这里是 Twilio 开发者宣传员。

你已经很接近你所拥有的了。 addOns 结果实际上是在该数字的addOns 属性中返回的。因此,使用您的代码,您可以像这样打印调用的请求 SID:

<?php

require 'vendor/autoload.php';
use Twilio\Rest\Client;

$client = new Client(ACxxxxxxxxxx,Tokenxxxxxxxx);

$number = $client->lookups
    ->phoneNumbers("+1xxxxxxxxxx")
    ->fetch(
        array("AddOns" => "whitepages_pro_caller_id")
    );

echo $number->addOns['results']['whitepages_pro_caller_id']['request_sid']

如果要查看整个结果,可以使用var_dump查看整个结构

var_dump($number->addOns['results']['whitepages_pro_caller_id'])

该结构将像在 the documentation 中一样显示,但在 PHP 输出中可能更容易看到。

让我知道这是否有帮助。

【讨论】:

  • 非常感谢!得到它的工作与你的更正!您知道是否可以在请求中传递单个参数以便只返回该参数?没什么大不了的,但会干净得多。
  • 我不确定你的意思。将单个参数传递给 API?你想退回什么样的东西?
  • 例如:我希望(whitepages pro)查找只返回“standard_address_line1”及其值。我知道有些插件接受额外的特定参数,不知道这个,我可以/将直接联系供应商,只是想有人可能知道答案。它将使处理响应的代码更简单,即,而不是向下遍历结构。换句话说,我只需要这个项目的一个数据,而不是供应商提供的所有其他数据。
  • 或者这就是“运行时请求参数=无”的意思?!无法传递附加参数。也许我只是希望我错过了什么!
  • 哦,我明白了。不,您不能在此附加组件中预先选择您想要的结果部分。这就是缺少运行时请求参数的含义。我会围绕 API 请求编写一个包装函数,以便您每次都可以从中返回所需的结果。这意味着您只需要在应用程序中处理一次结果遍历。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-08-27
  • 1970-01-01
  • 2023-03-24
  • 1970-01-01
  • 2019-01-15
  • 2015-09-13
相关资源
最近更新 更多