ret : 0
msg :
nickname : Wi_H
gender : 女
figureurl : http://qzapp.qlogo.cn/qzapp/100330589/***/30
is_yellow_vip : 0
vip : 0
yellow_vip_level : 0
level : 0
is_yellow_year_vip : 0以上是登录返回的值,貌似都是不固定的。QQ登录中返回的值哪些是固定的?用作帐号的ID。话说 OpenID 是固定的,怎样调用?
QQColorQQ登录
不好意思,说错了!是【username】
如果使用【nickname】做帐号,当用户修改了自己的名称,那不就无法登录而需重新注册了吗?官方说【openid】是固定的,但是我调用不到。
require_once("../login/qqConnectAPI.php");//获取API
$qc = new QC();
$userdata = $qc->get_user_info();//会员返回用户资料
$userdata["gender"];
$userdata["nickname"];
只能调用到以上的几个部分。
不好意思,说错了!是【username】
如果使用【nickname】做帐号,当用户修改了自己的名称,那不就无法登录而需重新注册了吗?官方说【openid】是固定的,但是我调用不到。
require_once("../login/qqConnectAPI.php");//获取API
$qc = new QC();
$userdata = $qc->get_user_info();//会员返回用户资料
$userdata["gender"];
$userdata["nickname"];
只能调用到以上的几个部分。1.用QQ登录你网站的用户就算修改了QQ昵称,也不会影响登录你的网站,因为登录不是根据昵称判断的.2.你先看一下授权流程 授权过程中是会给你openid的,接住存进数据库. 如果还是找不到这一步下午我帮你看看 我们网站也用QQ登录.
不好意思,说错了!是【username】
如果使用【nickname】做帐号,当用户修改了自己的名称,那不就无法登录而需重新注册了吗?官方说【openid】是固定的,但是我调用不到。
require_once("../login/qqConnectAPI.php");//获取API
$qc = new QC();
$userdata = $qc->get_user_info();//会员返回用户资料
$userdata["gender"];
$userdata["nickname"];
只能调用到以上的几个部分。1.用QQ登录你网站的用户就算修改了QQ昵称,也不会影响登录你的网站,因为登录不是根据昵称判断的.2.你先看一下授权流程 授权过程中是会给你openid的,接住存进数据库. 如果还是找不到这一步下午我帮你看看 我们网站也用QQ登录.
你好,我的扣扣:847149513或者您留一下你的QQ行不
给你代码吧
跟api文档描述一样 先用appid appkey等获取access_token 再根据这个获取openid
关键是你要看明白api文档.... 这个别人没办法帮你理解啊代码很简单容易明白的function qq_callback()
{
//debug
//print_r($_REQUEST);
//print_r($_SESSION); if($_REQUEST['state'] == $_SESSION['state']) //csrf
{
$token_url = "https://graph.qq.com/oauth2.0/token?grant_type=authorization_code&"
. "client_id=" . $_SESSION["appid"]. "&redirect_uri=" . urlencode($_SESSION["callback"])
. "&client_secret=" . $_SESSION["appkey"]. "&code=" . $_REQUEST["code"]; $response = get_url_contents($token_url);
if (strpos($response, "callback") !== false)
{
$lpos = strpos($response, "(");
$rpos = strrpos($response, ")");
$response = substr($response, $lpos + 1, $rpos - $lpos -1);
$msg = json_decode($response);
if (isset($msg->error))
{
echo "<h3>error:</h3>" . $msg->error;
echo "<h3>msg :</h3>" . $msg->error_description;
exit;
}
} $params = array();
parse_str($response, $params); //debug
//print_r($params); //set access token to session
$_SESSION["access_token"] = $params["access_token"]; }
else
{
echo("The state does not match. You may be a victim of CSRF.");
}
}function get_openid()
{
$graph_url = "https://graph.qq.com/oauth2.0/me?access_token="
. $_SESSION['access_token']; $str = get_url_contents($graph_url);
if (strpos($str, "callback") !== false)
{
$lpos = strpos($str, "(");
$rpos = strrpos($str, ")");
$str = substr($str, $lpos + 1, $rpos - $lpos -1);
} $user = json_decode($str);
if (isset($user->error))
{
echo "<h3>error:</h3>" . $user->error;
echo "<h3>msg :</h3>" . $user->error_description;
exit;
} //debug
//echo("Hello " . $user->openid); //set openid to session
$_SESSION["openid"] = $user->openid;
}//QQ登录成功后的回调地址,主要保存access token
qq_callback();//获取用户标示id
get_openid();
我用的是官方的 SDK 、、、http://wiki.connect.qq.com/sdk%E4%B8%8B%E8%BD%BD
多谢,其实自己早就调出来了!只不过出了差错!以为调出来的是错误的 openid、
细节决定成败呀