登录
string loginUrl = "https://graph.qq.com/oauth2.0/authorize"; string responseType = "code"; string clientId = "00000000"; string callbackUrl = "callbackUrl"; string url = string.Format("{0}?response_type={1}&client_id={2}&redirect_uri={3}", loginUrl, responseType, clientId, callbackUrl); Response.Redirect(url, false);
callback.aspx
//已登录成功,获取用户信息 #region 获取token string getAccessTokenUrl = "https://graph.qq.com/oauth2.0/token"; const string grant_type = "authorization_code"; const string client_id = "200000"; const string client_secret = "00000"; string code = Request.QueryString["code"]; string state = Request.QueryString["state"]; const string redirect_uri = "CallBack.aspx"; string tokenUrl = string.Format( "{0}?grant_type={1}&client_id={2}&client_secret={3}&code={4}&state={5}&redirect_uri={6}", getAccessTokenUrl, grant_type, client_id, client_secret, code, state, redirect_uri); string tokenResult = PostToUrl.PostDataToUrl(string.Empty, tokenUrl, "GET").ToString(); //开始解析 string[] tokens = tokenResult.Split(new char[] { '&', '=' }); string accessToken = string.Empty; for (int i = 0; i < 2; i++) { if (tokens[i * 2] == "access_token") { accessToken = tokens[2 * i + 1]; break; } } if (string.IsNullOrEmpty(accessToken)) Response.Write("access_token is null"); #endregion #region 获取openId string openIdUrl = "https://graph.qq.com/oauth2.0/me"; string openIdurl = string.Format("{0}?access_token={1}", openIdUrl, accessToken); string result = PostToUrl.PostDataToUrl(string.Empty, openIdurl, "GET").ToString(); //获得的数据样式 callback( {"client_id":"0000","openid":"xxxxxx"} ) result = result.Split(new char[] { '(', ')' })[1]; Dictionary<string, string> resultDic = Json.Parse<Dictionary<string, string>>(result); string openId = resultDic["openid"]; #endregion #region 获取用户信息 string userInfoUrl = "https://graph.qq.com/user/get_user_info"; string wholeUrl = string.Format("{0}?access_token={1}&oauth_consumer_key={2}&openid={3}", userInfoUrl, accessToken, client_id, openId); string userInfoResult = PostToUrl.PostDataToUrl(string.Empty, wholeUrl, "GET").ToString(); Dictionary<string, string> userInfoDic = Json.Parse<Dictionary<string, string>>(userInfoResult); string nickname = userInfoDic["nickname"];//成功取得用户信息 #endregion //do your login
大概就是这样,比较初级的登录,很简单。