编程语言
首页 > 编程语言> > php-使用Yahoo Contacts API获取联系人

php-使用Yahoo Contacts API获取联系人

作者:互联网

我按照这些步骤“ http://developer.yahoo.com/oauth/guide/oauth-auth-flow.html”进行操作,并从经过身份验证的用户那里获得了oauth令牌和GUID.
现在,我正在尝试通过GUID检索所有联系人,就像我在使用此网址“ http://social.yahooapis.com/v1/user/GUID_HERE/contacts”进行的网络搜索中看到的那样,并通过标头传递授权数据,但我只是得到了这个响应:

<?xml version='1.0' encoding='UTF-8'?><yahoo:errorxmlns:yahoo='http://yahooapis.com/v1/base.rng' xml:lang='en-US'><yahoo:description>Please provide valid credentials. OAuth oauth_problem="signature_invalid", realm="yahooapis.com"</yahoo:description></yahoo:error><!-- ws129.socdir.sp2.yahoo.com uncompressed/chunked Tue Aug 28 06:22:40 PDT 2012 -->

我正在使用cURL(PHP)执行请求,就像这里写的“ http://developer.yahoo.com/oauth/guide/oauth-make-request.html”(我已经检查过,并且正在使用自己的消费者机密作为ouath_signature ):

$header = array(
'GET http://social.yahooapis.com/v1/user/' . $guid[1] . '/contacts',
'Authorization: OAuth realm="yahooapis.com", '.
                                     'oauth_consumer_key="'.$yahoo_consumer_key.'", '.
                                     'oauth_nonce="'.uniqid().'", '.
                                     'oauth_signature_method="HMAC-SHA1", '.
                                     'oauth_timestamp="'.time().'", '.
                                     'oauth_token="'.$ouathToken[1].'", '.
                                     'oauth_version="1.0", '.
                                     'oauth_signature="'.$yahoo_consumer_secret.'"');
curl_setopt_array($ch, array(
    CURLOPT_RETURNTRANSFER => true,
              CURLOPT_FOLLOWLOCATION => TRUE,
              CURLOPT_SSL_VERIFYPEER => false,
              CURLOPT_SSL_VERIFYHOST => 0,
              //CURLOPT_HTTPGET => true,
              CURLOPT_URL => 'http://social.yahooapis.com/v1/user/' . $guid[1] . '/contacts',
              CURLOPT_HTTPHEADER => $header
    ));

有人可以帮忙吗?

解决方法:

OAuth签名不仅是消费者的秘密.雅虎有大约documentation on how sign the request,这就是oauth_signature字段中的内容.

标签:yahoo-api,oauth,php
来源: https://codeday.me/bug/20191127/2076372.html