qq 登录api php类(2)
来源:未知 责任编辑:责任编辑 发表时间:2015-09-16 20:04 点击:次
$sigstr = “GET”.”&”.rawurlencode(“http://openapi.qzone.qq.com/oauth/qzoneoauth_request_token”).”&”;
//必要参数
$params = array();
$params["oauth_version"] = “1.0″;
$params["oauth_signature_method"] = “HMAC-SHA1″;
$params["oauth_timestamp"] = time();
$params["oauth_nonce"] = mt_rand();
$params["oauth_consumer_key"] = $this->appid;
//对参数按照字母升序做序列化
$normalized_str = $this->get_normalized_string($params);
$sigstr .= rawurlencode($normalized_str);
//(2)构造密钥
$key = $this->appkey.”&”;
//(3)生成oauth_signature签名值。这里需要确保PHP版本支持hash_hmac函数
$signature = $this->get_signature($sigstr, $key);
//构造请求url
$url .= $normalized_str.”&”.”oauth_signature=”.rawurlencode($signature);
//echo “$sigstr\n”;
//echo “$url\n”;
return file_get_contents($url);
}
/*
* @brief 获取用户信息.请求需经过URL编码,编码时请遵循 RFC 1738
*
* @param $appid
* @param $appkey
* @param $access_token
* @param $access_token_secret
* @param $openid
*
*/
function get_user_info($access_token, $access_token_secret, $openid)
{
//获取用户信息的接口地址, 不要更改!!
$url = “http://openapi.qzone.qq.com/user/get_user_info”;
$info = $this->do_get($url, $access_token, $access_token_secret, $openid);
$arr = array();
$arr = json_decode($info, true);
return $arr;
}
/**
* @brief 获取access_token。请求需经过URL编码,编码时请遵循 RFC 1738
*
* @param $appid
* @param $appkey
* @param $request_token
* @param $request_token_secret
* @param $vericode
*
* @return 返回字符串格式为:oauth_token=xxx&oauth_token_secret=xxx&openid=xxx&oauth_signature=xxx&oauth_vericode=xxx×tamp=xxx
*/
function get_access_token($request_token, $request_token_secret, $vericode)
{
//请求具有Qzone访问权限的access_token的接口地址, 不要更改!!
$url = “http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token?”;
//生成oauth_signature签名值。签名值生成方法详见(http://wiki.opensns.qq.com/wiki/【QQ登录】签名参数oauth_signature的说明)
//(1) 构造生成签名值的源串(HTTP请求方式 & urlencode(uri) & urlencode(a=x&b=y&…))
$sigstr = “GET”.”&”.rawurlencode(“http://openapi.qzone.qq.com/oauth/qzoneoauth_access_token”).”&”;
相关新闻>>
最新推荐更多>>>
- 发表评论
-
- 最新评论 更多>>