// 测试之前,请先配置 QQConnect public void testAuth() { Console.WriteLine("请按任意键开始用户授权……"); Console.ReadLine(); QQConnect connect = AuthConnectFactory.GetConnect(typeof(QQConnect).FullName) as QQConnect; if (connect == null) { throw new Exception("尚未配置"); } Console.WriteLine("启动浏览器..."); connect.CallbackUrl = "http://www.wojilu.com"; Process.Start(connect.GetAuthorizationFullUrl()); Console.Write("请拷贝浏览器地址栏code的值,粘贴到此处:"); string code = Console.ReadLine(); Console.WriteLine("授权的code=" + code); Console.WriteLine("开始获取access token……"); AccessToken result = OAuthClient.New().GetAccessToken(connect, code, connect.HttpMethod_AccessToken); Console.WriteLine("access token=" + result.Token); Console.WriteLine("uid=" + result.Uid); // 获取openId String openIdUrl = "https://graph.qq.com/oauth2.0/me?access_token=" + result.Token; String response = wojilu.Net.PageLoader.Download(openIdUrl); Console.WriteLine("获取openid返回结果=" + response); String strJson = strUtil.TrimStart(response.Trim().TrimEnd(';'), "callback(").TrimEnd(')'); JsonObject obj = Json.ParseJson(strJson); String openIdMsg = "openid=" + obj.Get("openid"); Console.WriteLine(openIdMsg); logger.Info(openIdMsg); //--------------------------------------------------------------------- Console.WriteLine("请按 Enter 键结束……"); Console.ReadLine(); }
protected string Login(string AppId, string AppKey, string CallbackUrl) { string url = ""; currentUser.State = Guid.NewGuid().ToString("N"); SetReturnUrl(currentUser.State, ReturnUrl); QQConnect connect = new QQConnect(AppId, AppKey, currentUser.State, UrlParameterHelper.UrlEncode(CallbackUrl)); if (connect != null) { SaveUserInfo(currentUser); url = connect.GetAuthorizationCodeUrl("get_user_info"); } return(url); }
public void testUploadPic() { QQConnect connect = AuthConnectFactory.GetConnect(typeof(QQConnect).FullName) as QQConnect; if (connect == null) { throw new Exception("尚未配置"); } AccessToken x = new AccessToken { Token = accessToken }; String content = "这是来自QQ互联api的微博内容" + DateTime.Now; JsonObject jsonValue = connect.PublishPic(x, content, "c:\\testpic.jpg"); Assert.AreEqual("ok", jsonValue.Get("msg")); }
public void testProfile() { Console.WriteLine("请按任意键,开始发布……"); Console.ReadLine(); QQConnect connect = AuthConnectFactory.GetConnect(typeof(QQConnect).FullName) as QQConnect; if (connect == null) { throw new Exception("尚未配置"); } AccessToken x = new AccessToken(); x.Token = accessToken; OAuthUserProfile obj = connect.GetUserProfile(x); Assert.IsNotNull(obj); Console.WriteLine("id=" + obj.Uid); Console.WriteLine("name=" + obj.Name); Assert.IsNotNull(obj.Uid); Assert.IsNotNull(obj.Name); Assert.IsTrue(obj.Name.Length > 0); // 用户头像(小50×50像素) Console.WriteLine("profile_image_url=" + obj.PicUrlSmall); Assert.IsNotNull(obj.PicUrlSmall); Assert.IsTrue(obj.PicUrlSmall.Length > 0); // 用户头像(大) Console.WriteLine("avatar_large=" + obj.PicUrlBig); Assert.IsNotNull(obj.PicUrlBig); Assert.IsTrue(obj.PicUrlBig.Length > 0); Console.WriteLine("domain=" + obj.FriendlyUrl); Console.WriteLine("请按 Enter 键结束……"); Console.ReadLine(); }
protected string Notify(string AppId, string AppKey, string CallbackUrl, int union = 0) { string url = ""; if (!string.IsNullOrEmpty(Code) && !string.IsNullOrEmpty(State) && string.Compare(State, currentUser.State, true) == 0) { QQConnect connect = new QQConnect(AppId, AppKey, State, UrlParameterHelper.UrlEncode(CallbackUrl)); if (connect != null && connect.GetAccessTokenByCode(Code) && connect.GetOpenIdByToken(union) && !string.IsNullOrEmpty(connect.AccessToken) && !string.IsNullOrEmpty(connect.OpenId)) { currentUser.Token = connect.AccessToken; currentUser.OpenId = connect.OpenId; string result = string.Empty; QQConnect.UserInfo model = new QQConnect.UserInfo(); if (connect.GetUserInfo(out result, out model) && !string.IsNullOrEmpty(result) && string.Compare(model.ret, "0", true) == 0) { currentUser.NickName = model.nickname; string nickName = string.Empty; AccessUsersInfo accessUsersInfo = new AccessUsersInfo(); accessUsersInfo = GetClientLogInfo(accessUsersInfo) as AccessUsersInfo; accessUsersInfo.AccessToken = currentUser.Token; accessUsersInfo.UserName = ""; accessUsersInfo.NickName = currentUser.NickName; accessUsersInfo.Email = ""; accessUsersInfo.Icon = model.figureurl_qq_2; accessUsersInfo.Phone = ""; accessUsersInfo.Platform = Constants.AccessUserPlatform.qq.ToString(); accessUsersInfo.OpenId = currentUser.OpenId; accessUsersInfo.AccessToken = currentUser.Token; accessUsersInfo.LoginInvalidTime = DateTime.Now; accessUsersInfo.RecentLoginTime = DateTime.Now; accessUsersInfo.AddTime = DateTime.Now; accessUsersInfo.Status = (int)Constants.Status.yes; if (union == 1) { accessUsersInfo.UnionId = connect.UnionId; } Users users = new Users(); users.Fee = 0; users.UserName = CreateUserName(out nickName); users.Icon = ""; users.Phone = ""; int rel = 0; if ((rel = _accessUsersService.Register(accessUsersInfo, users)) == (int)ErrorMessage.成功) { LoginedAccessUsers loginedAccessUsers = _accessUsersService.AccessLogin(accessUsersInfo); if (loginedAccessUsers != null && loginedAccessUsers.Id > 0) { currentUser.UserId = loginedAccessUsers.Id; currentUser.UserName = loginedAccessUsers.UserName; currentUser.NickName = loginedAccessUsers.NickName; SaveUserInfo(currentUser); //ChapterReadLogSync(loginedAccessUsers.UserName, loginedAccessUsers.Id); url = GetReturnUrl(State); } } } } } return(url); }