雅虎oauth联系使用curl php破碎了

时间:2012-11-19 17:40:46

标签: curl oauth contacts yahoo yql

好的,所以我现在浪费了大约4个小时......它应该很简单,大约125个字符,总共2到4行。最终用Yahoo联系人获取数组。

我设法使用随最新的sdk Yahoo产品提供的simpleauth.php示例代码成功登录用户。现在,一旦用户登录,我将需要运行YQL:

这是一个yql查询:

select * from social.contacts where guid=me;

它应该返回所有联系人,好吧,无法让它工作,因为似乎还有更多要添加到以下代码中以便yql工作:

$yql_base_url = "http://query.yahooapis.com/v1/yql";  

$yql_query = "select * from social.contacts where guid=me";  

$yql_query_url = $yql_base_url . "?q=" . urlencode($yql_query); 
$yql_query_url .= "&format=json";

$curlParams = array (
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_FOLLOWLOCATION => 0,
  CURLOPT_FAILONERROR => false,
  CURLOPT_SSL_VERIFYPEER => true,
  CURLOPT_HEADER => true,
  CURLOPT_VERBOSE => false,
);

  $ch = curl_init();
curl_setopt_array($ch, $curlParams);
curl_setopt($ch, CURLOPT_URL, $yql_query_url);

 $content = curl_exec ( $ch );  
 print_r($content);

我当然没有得到联系人,而是得到:

 HTTP/1.1 401 Unauthorized
X-YQL-Host: engine2.yql.sp2.yahoo.com
WWW-Authenticate: OAuth oauth_problem="OST_OAUTH_PARAMETER_ABSENT_ERROR", realm="yahooapis.com"

它让我发疯,因为它应该以某种方式开箱即用,意味着人们可以毫无问题地使用 - 而不是4小时的研究,编辑和阅读,以确定它不会以一种简单的方式工作。与我已经设法工作的谷歌和微软联系人相反。

似乎我应该添加我的

$client->setClientId('client_id');
$client->setClientSecret('client_secret');
$client->setRedirectUri('redirect_uri');
$client->setDeveloperKey('developer_key');

卷曲但我不知道该怎么做。

0 个答案:

没有答案