Linkedin:如何使用访问令牌进行api调用?

时间:2012-10-05 10:05:02

标签: zend-framework oauth linkedin access-token

我将linkedin访问令牌存储在数据库中。这是存储在我的数据库中的令牌:

oauth_token=xxxxxxxxxxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxxxxxxxxxx&oauth_expires_in=5183998&oauth_authorization_expires_in=5183998

我想使用此访问令牌检索linkedin连接。我想打个电话:

        $a = new Zend_Oauth_Token_Access();
        $client = $a->getHttpClient( array( 
                        'siteUrl' => LIN_SITE_URL,
                        'callbackUrl' => LIN_SITE_CALLBACK_URL,
                        'requestTokenUrl' => LIN_REQUEST_TOKEN_URL,
                        'userAuthorizationUrl' => LIN_USER_AUTHORIZATION_URL,
                        'accessTokenUrl' => LIN_ACCESS_TOKEN_URL,
                        'consumerKey' => LIN_CONSUMER_KEY,
                        'consumerSecret' => LIN_CONSUMER_SECRET
                    ) );

        $client->setUri('http://api.linkedin.com/v1/people/~/connections:(id,first-name,last-name,picture-url)');   
        $client->setParameterGet('token',$linToken);
        $client->setMethod(Zend_Http_Client::GET);
        $response = $client->request();

        $content =  $response->getBody();
        $data = json_decode(Zend_Json::fromXml($content, false));   
        print_r($data); echo "<br/>";

我到这里的错误是:

stdClass Object ( [error] => stdClass Object ( [status] => 404 [timestamp] => 1349429996351 [request-id] => 8U8A1UNF1V [error-code] => 0 [message] => Could not find person based on: ~ ) ) 

这是拨打电话的正确方式还是我在这里做错了什么。我正在使用zend框架。

感谢。

2 个答案:

答案 0 :(得分:3)

我能够通过将outh_token和outh_token_secret作为数组传递给Zend_Oauth_Token_Access的setParams()来解决问题,如下所示:

$a = new Zend_Oauth_Token_Access;
 $a->setParams(array(
  'oauth_token' => 'xxxxxxxxxxxxxxxxxxxxxxxxxx',
  'oauth_token_secret' => 'xxxxxxxxxxxxxxxxxxxxxxxxxxxx'
 ));

答案 1 :(得分:1)

在您的代码示例中,我看不到您在何处设置访问令牌和密码。我只是看到你实例化$ a变量:

$a = new Zend_Oauth_Token_Access();

您是否从数据库中检索访问令牌和机密,然后将其设置为$ a变量?像这样:

   $a->setToken($row['token'])
     ->setTokenSecret($row['secret']);

顺便说一下,这是使用Zend和LinkedIn的一个很好的参考:http://www.contentwithstyle.co.uk/content/linkedin-and-zendoauth/