0

我将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框架。

谢谢。

4

2 回答 2

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'
 ));
于 2012-10-09T06:58:43.353 回答
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/

于 2012-10-05T23:05:23.823 回答