LinkedIn API OAuth问题

时间:2011-06-02 10:38:51

标签: php oauth linkedin

我正在使用PEAR OAuth类访问LinkedIn开发人员API,我遇到了一些问题。我可以授权我的应用程序,但是当涉及到获取accessToken时,我收到了这个错误:

修改

亚当建议后的代码

public function oauth_access()
{
    session_start();

    $token = $_GET['oauth_token'];
    $verifier = $_GET['oauth_verifier'];
    $secret = $_SESSION['trequest_token_secret'];

    $key = "****";
    $secret = "****";

    $oauthc = new OAuth($key, $secret, OAUTH_SIG_METHOD_HMACSHA1, OAUTH_AUTH_TYPE_AUTHORIZATION);

    $oauthc->setToken($token, $secret);
    $oauthc->setNonce(rand());


    try
    {
        $access_token_info = $oauthc->getAccessToken("https://api.linkedin.com/uas/oauth/accessToken");
        $_SESSION['laccess_oauth_token']= $access_token_info['oauth_token'];
        $_SESSION['laccess_oauth_token_secret']= $access_token_info['oauth_token_secret'];
        $_SESSION['loauth_verifier'] = $verifier;

    }
    catch (OAuthException $e)
    {
       echo $e->getMessage();
    }
}

但我现在得到一个不同的错误:

Invalid auth/bad request (got a 401, expected HTTP/1.1 20X or a redirect)

1 个答案:

答案 0 :(得分:2)

您无需手动计算签名,因为pecl / oauth会为您执行此操作。

此外,您告诉库传递Authorization HTTP标头中的数据。这是一个拥有它的好地方。然后通过查询参数传递它。这是允许的,但不太理想。 (你可能实际上是在两个地方传递它。)另外,pecl / oauth会自动生成正确的时间戳。

当我刚开始时,我发现this blog post是一个良好的开端。

或者您可以使用Paul列出的LinkedIn PHP库。如果您不想重复使用pecl / oauth,那么它也是一个很好的开始。