Пример #1
0
        /// <summary>
        /// 获取用户信息
        /// </summary>
        /// <returns></returns>
        public JObject GetUserState(string sinaUid)
        {
            var json = new JObject();

            json["authorized"] = false;
            if (!client.IsAuthorized)
            {
                return(json);
            }
            // 调用获取获取用户信息api
            // 参考:http://open.weibo.com/wiki/2/users/show
            var response   = client.HttpGet("users/show.json", new { uid = sinaUid });
            int statusCode = (int)response.StatusCode;

            if (statusCode == 400 || statusCode == 401 || statusCode == 403)
            {
                return(json);
            }
            if (response.IsSuccessStatusCode)
            {
                json["authorized"] = true;
                json["data"]       = JObject.Parse(response.Content.ReadAsStringAsync().Result);
            }
            else
            {
                json["data"]       = JObject.Parse(response.Content.ReadAsStringAsync().Result);
                json["authorized"] = true;
            }
            return(json);
        }
Пример #2
0
        public ActionResult GetAuthorizationState()
        {
            var settings = ConfigurationManager.AppSettings;

            var oauth = new SinaWeiboClient(settings["appKey"], settings["appSecret"], settings["callbackUrl"]);


            if (Request.Cookies["access_token"] == null || string.IsNullOrEmpty(Request.Cookies["access_token"].Value))
            {
                return(Json(new
                {
                    authorized = false
                }, JsonRequestBehavior.AllowGet));
            }



            var accessToken = Request.Cookies["access_token"].Value;
            var uid         = Request.Cookies["uid"].Value;

            oauth.AccessToken = accessToken;
            oauth.UID         = uid;

            //较v2版的sdk,新的v3版sdk移除了所有的本地化api接口,因为新浪的接口变来变去,踩着滑板鞋也追不着他们魔鬼的步伐。
            //因此v3版的调用方式改为直接填写官方api名称和传递官方文档中要求的参数的方式来调用,返回结果需要自行使用json接卸器解析。
            var response = oauth.HttpGet("user/show.json", new
            {
                uid = uid
            });


            return(Json(response.Content.ReadAsStringAsync().Result, JsonRequestBehavior.AllowGet));
        }
Пример #3
0
        public static string GetUserInfo(SinaWeiboClient sw, int tryTimes)
        {
            // 调用获取获取用户信息api
            // 参考:http://open.weibo.com/wiki/2/users/show
            string result = null;;

            while (result == null && tryTimes > 0)
            {
                var response = sw.HttpGet("users/show.json", new
                {
                    //可以传入一个Dictionary<string,object>类型的对象,也可以直接传入一个匿名类。参数与官方api文档中的参数相对应
                    uid = sw.UID
                });
                result = response.ToString();
                tryTimes--;
            }
            return(result);
        }
Пример #4
0
        private void GetFrindTimeline(SinaWeiboClient openAuth)
        {
            Console.WriteLine("get user's timeline...");

            var result = openAuth.HttpGet("statuses/friends_timeline.json", new Dictionary <string, object>
            {
                { "count", 5 },
                { "page", 1 },
                { "base_app", 0 }
            });

            Console.WriteLine("{0}", result);

            if (result.IsSuccessStatusCode)
            {
                Console.WriteLine(result.Content.ReadAsStringAsync().Result);
                Console.WriteLine("success!");
            }
        }
Пример #5
0
        private void GetFrindTimeline(SinaWeiboClient openAuth)
        {
            console.info("获取当前登录用户及其所关注用户的最新微博...");


            var result = openAuth.HttpGet("statuses/friends_timeline.json", new Dictionary <string, object>
            {
                { "count", 5 },
                { "page", 1 },
                { "base_app", 0 }
            });

            console.attention("{0}", result);

            if (result.IsSuccessStatusCode)
            {
                console.data(result.Content.ReadAsStringAsync().Result);
                console.info("获取成功!");
            }
        }