【问题标题】:Linkedin: How to make api calls using access token?Linkedin:如何使用访问令牌进行 api 调用?
【发布时间】:2012-09-26 11:23:29
【问题描述】:

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

谢谢。

【问题讨论】:

    标签: zend-framework oauth linkedin access-token


    【解决方案1】:

    我能够通过将 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'
     ));
    

    【讨论】:

      【解决方案2】:

      在您的代码示例中,我看不到您在哪里设置访问令牌和密码。我只是看到您正在实例化 $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/

      【讨论】:

      • 在数据库中,我存储了作为访问令牌返回的整个字符串。这是我在下面得到的: oauth_token=xxxxxxxxxxxxxxxxxxx&oauth_token_secret=xxxxxxxxxxxxxxxxxxx&oauth_expires_in=5183998&oauth_authorization_expires_in=5183998 我从 db 访问上述内容。我没有在任何地方设置令牌和令牌秘密。我想知道它是否是在数据库中存储访问令牌的正确方法。别人怎么储存?我应该将 oauth_token 和 oauth_token_secret 分别存储在数据库中吗?
      猜你喜欢
      • 2013-07-22
      • 1970-01-01
      • 2020-02-29
      • 2017-01-07
      • 2013-10-11
      • 2015-06-26
      • 2013-07-24
      • 2019-11-19
      • 2016-05-20
      相关资源
      最近更新 更多