【发布时间】:2017-10-27 00:36:04
【问题描述】:
我尝试在我的网站中使用linkedIn 创建一个注册功能。
如您所知,linkedIn 有两步验证来获取访问令牌。
在此处查看 StackOverflow 答案:Click here
从上面的线程, 我尝试用 PHP cUrl 做第二步。
$url = "https://www.linkedin.com/oauth/v2/accessToken?grant_type=authorization_code&code=" . $_GET['code'] . "&redirect_uri=A_URL&client_id=MY_CLIENT_ID&client_secret=SECRET";
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => $url,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_TIMEOUT => 1000,
CURLOPT_HTTPHEADER => array(
"Content-Length: 1000"
)
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if (!$err) {
$response = json_decode($response);
} else {
throw new exception(__METHOD__ . '() ' . $err . ', on line : ' . __LINE__);
}
但是当 curl_exec() 被执行时,页面会无限加载。
我不知道我的错误是什么。我尝试通过 url 框手动运行$url,它成功返回了一个令牌和过期时间。所以,我断定错误出在 cUrl 中。
有什么帮助吗?,
非常感谢。
【问题讨论】:
-
在你开始之前,请继续阅读:oauth.net/2
-
那两步验证被称为oauth,你现在正在做一个客户端。
-
这里是 Google 的 OAuth 平台developers.google.com/oauthplayground
-
您可以对其进行测试以了解 OAuth 的工作原理以及何时获取令牌。这是一个简单的开始 github.com/thephpleague/oauth2-client
-
它比那个 POST 语句更复杂:D
标签: php curl linkedin access-token