public void testProfile() { // 如果报错 source paramter(appkey) is missing,很有可能是 access token 过期 Console.WriteLine("请按任意键,开始发布……"); Console.ReadLine(); WeiboConnect connect = AuthConnectFactory.GetConnect(typeof(WeiboConnect).FullName) as WeiboConnect; if (connect == null) { throw new Exception("尚未配置"); } AccessToken x = new AccessToken(); x.Token = accessToken; x.Uid = "3214151865"; OAuthUserProfile obj = connect.GetUserProfile(x); Console.WriteLine("id=" + obj.Uid); Console.WriteLine("name=" + obj.Name); // 用户头像(小50×50像素) Console.WriteLine("profile_image_url=" + obj.PicUrlSmall); // 用户头像(大) Console.WriteLine("avatar_large=" + obj.PicUrlBig); Console.WriteLine("domain=" + obj.FriendlyUrl); Console.WriteLine("请按 Enter 键结束……"); Console.ReadLine(); }
// 测试之前,请先配置 WeiboConnect public void testAuth() { Console.WriteLine("请按任意键开始用户授权……"); Console.ReadLine(); WeiboConnect connect = AuthConnectFactory.GetConnect(typeof(WeiboConnect).FullName) as WeiboConnect; if (connect == null) { throw new Exception("尚未配置"); } Console.WriteLine("启动浏览器..."); connect.CallbackUrl = "http://127.0.0.1/oauth/callback"; 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); Console.WriteLine("access token=" + result.Token); Console.WriteLine("uid=" + result.Uid); Console.WriteLine("请按 Enter 键结束……"); Console.ReadLine(); }
public void testPublish() { WeiboConnect connect = AuthConnectFactory.GetConnect(typeof(WeiboConnect).FullName) as WeiboConnect; String content = "这是测试的微博内容" + DateTime.Now; JsonObject jsonValue = connect.PublishPost(accessToken, content); Assert.AreEqual(content, jsonValue.Get("text")); }
public void testUploadPic() { WeiboConnect connect = AuthConnectFactory.GetConnect(typeof(WeiboConnect).FullName) as WeiboConnect; String content = "这是测试的微博内容" + DateTime.Now; JsonObject jsonValue = connect.PublishPic(accessToken, content, "c:\\testpic.jpg"); Assert.AreEqual(content, jsonValue.Get("text")); //------------------------------- //Console.WriteLine( "获取最新的微博..." ); //items = new Dictionary<String, String>(); //items.Add( "id", getFirstId() ); //result = OAuth.GetApi( accessToken, "https://api.weibo.com/2/statuses/show.json", items ); //jsonValue = Json.DeserializeJson( result ); //Assert.AreEqual( content, jsonValue.Get( "text" ) ); }
protected string Login(string AppId, string AppKey, string CallbackUrl) { string url = ""; currentUser.State = Guid.NewGuid().ToString("N"); SetReturnUrl(currentUser.State, ReturnUrl); WeiboConnect connect = new WeiboConnect(AppId, AppKey, currentUser.State, UrlParameterHelper.UrlEncode(CallbackUrl)); if (connect != null) { SaveUserInfo(currentUser); url = connect.GetAuthorizationCodeUrl("email"); } return(url); }
protected string Notify(string AppId, string AppKey, string CallbackUrl) { string url = ""; if (!string.IsNullOrEmpty(Code) && !string.IsNullOrEmpty(State) && string.Compare(State, currentUser.State, true) == 0) { WeiboConnect connect = new WeiboConnect(AppId, AppKey, currentUser.State, UrlParameterHelper.UrlEncode(CallbackUrl)); if (connect != null && connect.GetAccessTokenByCode(Code) && !string.IsNullOrEmpty(connect.AccessToken) && !string.IsNullOrEmpty(connect.OpenId)) { currentUser.Token = connect.AccessToken; currentUser.OpenId = connect.OpenId; string result = string.Empty; WeiboConnect.UserInfo model = new WeiboConnect.UserInfo(); if (connect.GetUserInfo(out result, out model) && !string.IsNullOrEmpty(result) && !string.IsNullOrEmpty(model.id)) { currentUser.NickName = model.screen_name; 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.profile_image_url; accessUsersInfo.Phone = ""; accessUsersInfo.Platform = Constants.AccessUserPlatform.weibo.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; accessUsersInfo.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); }