Пример #1
0
        private SocialUserInfo GetQQUserInfo()
        {
            SocialUserInfo result = null;

            string code = Request.QueryString.GetValue("Code", string.Empty);

            if (code.IsNotEmpty())
            {
                QQAccessTokenRequestParams requestParams = new QQAccessTokenRequestParams(
                    QQConnectionSettings.GetConfig().LoginCallback.ToString(),
                    code);

                QQAccessTokenResponseParams responseParams = QQLoginConnectionManager.GetAccessToken(requestParams);

                QQGetOpenIDRequestParams getOpenParams = new QQGetOpenIDRequestParams(responseParams.AccessToken);

                QQGetOpenIDResponseParams openIDResponse = QQLoginConnectionManager.GetOpenID(getOpenParams);

                QQGetUserInfoResponseParams getUserInfoResponse = QQLoginConnectionManager.GetUserInfo(new QQGetUserInfoRequestParams(getOpenParams.AccessToken, openIDResponse.OpenID));

                result = getUserInfoResponse.ToSocialUserInfo();
            }

            return(result);
        }
        protected override void ProcessResponseText(string responseText)
        {
            QQLoginConnectionException.CheckResponseText(responseText);

            string json = QQLoginConnectionManager.GetResponseJsonString(responseText);

            if (json.IsNullOrEmpty())
            {
                throw new ApplicationException(responseText);
            }

            Dictionary <string, object> data = JSONSerializerExecute.Deserialize <Dictionary <string, object> >(json);

            QQGetUserInfoResponseParams response = new QQGetUserInfoResponseParams(this.RequestParams.OpenID);

            response.FromDictionary(data);

            this.ResponseParams = response;
        }