You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
65 lines
2.0 KiB
65 lines
2.0 KiB
<?php
|
|
/**
|
|
* Created by PhpStorm.
|
|
* User: Administrator
|
|
* Date: 2018/6/12
|
|
* Time: 15:17
|
|
*/
|
|
|
|
require_once "./function.php";
|
|
|
|
// get_code_url = "https://www.linkedin.com/oauth/v2/authorization?response_type=code&client_id=81cc4t9fuu9bpu&redirect_uri=https%3A%2F%2Ffengyuexingzi.top%2Fauth%2Flinkedin&state=Wf6tYXQ7y86iRulBOC%2FUXraHneM%3D&scope=r_fullprofile%20r_emailaddress%20w_share";
|
|
|
|
$state = base64_encode(openssl_random_pseudo_bytes(20));
|
|
session_start();
|
|
$_SESSION['state'] = $state;
|
|
|
|
if (isset($_SESSION['info'])) {
|
|
dump($_SESSION['info']);
|
|
unset($_SESSION['info']);
|
|
}
|
|
|
|
$tokenInfo = [
|
|
'access_token' => 'AQUhXDdWEWNdYAn6zHrahzIWATYDW4OptdpCPmAcPoSW9mIIdUwhpQj8XLTIIP1PyDBUs5hyUb86it8GQNS7kcsW3o4QggkAiswA2c3X-nO8byjQBaIiRoQuyGpboEN672NRWgB6B7PvtX4Gujz6BWf0sUPvIITKRdF_PoasfDrits5TJGsnJZZFxm8JzDamQ8Xt4tzal1zMqundj1I5OxyGWhdl9uGuly9M2NfsZZ6_qxT0b7OnaWUU6dq5uKVSqsR_QY8HlDgBtw-HGvODNHMmPhtigjrdcoMaztobvNj7ReTMWN-TNhWLEb4QZaoWCG2X7b9bXnUYi1Cbp_VZoOaj_jMRug',
|
|
'expires_in' => '1534052395',
|
|
];
|
|
|
|
function getCodeUrl()
|
|
{
|
|
$url = 'https://www.linkedin.com/oauth/v2/authorization?';
|
|
$data = array(
|
|
'response_type' => 'code',
|
|
'client_id' => '81cc4t9fuu9bpu',
|
|
'redirect_uri' => 'https://fengyuexingzi.top/auth/linkedin/callback.php',
|
|
'state' => $GLOBALS['state'],
|
|
'scope' => 'r_basicprofile r_emailaddress w_share',
|
|
);
|
|
foreach ($data as $k => $v) {
|
|
if (!$v) {
|
|
return false;
|
|
}
|
|
}
|
|
$url .= http_build_query($data, null, '&', PHP_QUERY_RFC3986);
|
|
|
|
return $url;
|
|
}
|
|
|
|
$url = getCodeUrl();
|
|
|
|
if ($tokenInfo['expires_in'] < time()) {
|
|
$html = <<<EOF
|
|
<a href="${url}">获取授权</a>
|
|
EOF;
|
|
echo $html;
|
|
} else {
|
|
$hdrs = [
|
|
'http' => [
|
|
'header' =>
|
|
"Accept: application/json\r\n" .
|
|
"Authorization: Bearer ${tokenInfo['access_token']}",
|
|
'timeout' => 2
|
|
],
|
|
];
|
|
$context = stream_context_create($hdrs);
|
|
echo file_get_contents('https://api.linkedin.com/v1/people/~?format=json', 0, $context);
|
|
} |