我正在使用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)
答案 0 :(得分:2)
您无需手动计算签名,因为pecl / oauth会为您执行此操作。
此外,您告诉库传递Authorization HTTP标头中的数据。这是一个拥有它的好地方。然后通过查询参数传递它。这是允许的,但不太理想。 (你可能实际上是在两个地方传递它。)另外,pecl / oauth会自动生成正确的时间戳。
当我刚开始时,我发现this blog post是一个良好的开端。
或者您可以使用Paul列出的LinkedIn PHP库。如果您不想重复使用pecl / oauth,那么它也是一个很好的开始。