/** * @brief GG_GetToken * 获取token * * @param $code * * @return */ function GG_GetToken($code) { $url = "https://accounts.google.com/o/oauth2/token"; $fields = array("code" => $code, "client_id" => GOOGLE_CLIENT_ID, "client_secret" => GOOGLE_CLIENT_SECRET, "redirect_uri" => GOOGLE_REDIRECT_URI, "grant_type" => "authorization_code"); $data = X_POST($url, $fields); return $data; }
/** * @brief YH_GetAccessToken in callback * * @param $requestTokenSecret request token secret * * @return */ function YH_GetAccessToken($requestTokenSecret) { if (!array_key_exists("oauth_token", $_GET) || !array_key_exists("oauth_verifier", $_GET)) { return false; } $oauthToken = $_GET['oauth_token']; $oauthVerifier = $_GET['oauth_verifier']; $url = "https://api.login.yahoo.com/oauth/v2/get_token"; $nonce = md5(mt_rand()); $timestamp = time(); $params = array("oauth_consumer_key" => YAHOO_CONSUMER_KEY, "oauth_nonce" => $nonce, "oauth_signature_method" => "HMAC-SHA1", "oauth_timestamp" => $timestamp, "oauth_version" => "1.0", "oauth_token" => $oauthToken, "oauth_verifier" => $oauthVerifier); $b = YH_MakeSignatureBaseString("POST", $url, $params); $key = YAHOO_CONSUMER_SECRET . '&' . $requestTokenSecret; $s = YH_Signature($b, $key); $params['oauth_signature'] = $s; $data = X_POST($url, $params); $r = explode("&", $data); $data = array(); foreach ($r as $v) { $rr = explode("=", $v); $data[$rr[0]] = $rr[1]; } return $data; }