$o->authorize(Util::currentUrl(), 'snsapi_userinfo'); } else { try { $token = $o->getToken($_GET['code']); } catch (OAuthException $e) { exit($e->getMessage()); } setAuthorize($token); header('Location: ' . Util::currentUrl()); } } /** * 根据 Token 来获取用户信息 */ $token = getAuthorize(); $user = $o->getUser($token); echo '<pre>'; var_dump($token); var_dump($user); echo '</pre>'; /** * 刷新 TOKEN */ if (!$o->accessTokenIsValid($token)) { $token = $o->refreshToken($token->refresh_token); setAuthorize($token); } ?> <h1><a href="javascript:;" onclick="window.location.reload()">刷新</a></h1>
// 或自行跳转 // $url = $o->getAuthorizeURL($callbackUrl, 'snsapi_userinfo', 'state'); // header("Location: {$url}"); /** * 第二步:通过 code 换取 AccessToken */ // $token = $o->getAccessToken($_GET['code']); /** * 第三步:通过 openid 和 AccessToken 获取用户信息(scope 为 snsapi_userinfo 时有用) */ // $userinfo = $o->getUser($token->openid, $token->access_token); // echo '<pre>'; // var_dump($token, $userinfo); // echo '</pre>'; /** * 完整流程 */ $o = new OAuth(APPID, APPSECRET); if (!isset($_GET['code'])) { $o->authorize($callbackUrl, 'snsapi_userinfo'); } else { try { $token = $o->getAccessToken($_GET['code']); $userinfo = $o->getUser($token->openid, $token->access_token); } catch (OAuthException $e) { exit($e->getMessage()); } echo '<pre>'; var_dump($token, $userinfo); echo '</pre>'; }