Yahoo Oauth 2 PHP

时间:2017-10-02 19:20:00

标签: codeigniter oauth-2.0 yahoo-api

我正在开展一个项目,我需要从雅虎邮箱中获取联系人。我正在使用Oauth2.0。我正在通过access_token通过https:// api.login.yahoo.com/oauth2/get_token获取curl以及所有内容grant_type以及所有必需参数。但问题是来自雅虎的refresh_tokenxoauth_yahoo_guid我正在重定向到此网址https://social.yahooapis.com/v1/user/{xoauth_yahoo_guid}/contacts?format=json。我得到了这个输出: -

{"error":{"@lang":"en-US","@uri":"http://yahoo.com","description":"Not Authorized - Either YT cookies or a valid OAuth token must be passed for authorization","detail":"Not Authorized - Either YT cookies or a valid OAuth token must be passed for authorization"}}

但是我在codeigniter工作,我需要在ajax或javascript中完成这项任务但我已经尝试了很多,但遗憾的是没有任何事情可以帮助我。请帮我摆脱这个问题。

感谢。

1 个答案:

答案 0 :(得分:0)

最后我得到了答案。我只需要发送标题

$headers= array( 'Authorization: Bearer '.< access_token >, 'Accept: application/json', 'Content-Type: application/json' );

以下代码: -

$ch = curl_init(); 
    $url = "https://social.yahooapis.com/v1/user/me/contacts?format=json"; 
    curl_setopt($ch, CURLOPT_URL,$url);
    curl_setopt($ch, CURLOPT_POST, false);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
    curl_setopt($ch, CURLOPT_HEADER, false);
    $output3 = curl_exec ($ch); 
    curl_close ($ch); // close curl handle
    $finalresult = json_decode($output3);
    echo'<pre>';print_r($finalresult);