コード例 #1
0
        public void testProfile()
        {
            Console.WriteLine("请按任意键,开始发布……");
            Console.ReadLine();

            QQWeiboConnect connect = AuthConnectFactory.GetConnect(typeof(QQWeiboConnect).FullName) as QQWeiboConnect;

            if (connect == null)
            {
                throw new Exception("尚未配置");
            }

            AccessToken x = new AccessToken();

            x.Token = accessToken;
            x.Uid   = openId;

            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();
        }
コード例 #2
0
        // 测试之前,请先配置 QQWeiboConnect
        public void testAuth()
        {
            Console.WriteLine("请按任意键开始用户授权……");
            Console.ReadLine();

            QQWeiboConnect connect = AuthConnectFactory.GetConnect(typeof(QQWeiboConnect).FullName) as QQWeiboConnect;

            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……");

            // 必须同时保存 openId ,调用 API 时可以用到
            AccessToken result = OAuthClient.New().GetAccessToken(connect, code);

            Console.WriteLine("access token=" + result.Token);
            logger.Info("access token=" + result.Token);

            Console.WriteLine("请按 Enter 键结束……");
            Console.ReadLine();
        }
コード例 #3
0
        public void testGetMyStatus()
        {
            QQWeiboConnect connect = AuthConnectFactory.GetConnect(typeof(QQWeiboConnect).FullName) as QQWeiboConnect;

            if (connect == null)
            {
                throw new Exception("尚未配置");
            }

            List <JsonObject> list = OAuthClient.Init("http://open.t.qq.com/api/statuses/broadcast_timeline", accessToken, "GET")
                                     .AddParam(defaultParams(connect))
                                     .AddParam("pageflag", 0)
                                     .AddParam("pagetime", 0)
                                     .AddParam("reqnum", 20)
                                     .AddParam("lastid", 0)
                                     .AddParam("type", 3)
                                     .AddParam("contenttype", "0x80")
                                     .RunJson()
                                     .GetJson("data")
                                     .GetList <JsonObject>("info");

            foreach (JsonObject x in list)
            {
                String userName = x.Get("name");
                String blogBody = x.Get("text");

                Assert.IsNotNull(blogBody);
                Assert.IsNotNull(userName);

                Console.WriteLine("---------------------------------------------------------");
                Console.WriteLine("[[" + userName + "]]: " + blogBody);
            }
        }
コード例 #4
0
        // 必须的默认参数
        private Dictionary <String, String> defaultParams(QQWeiboConnect connect)
        {
            Dictionary <String, String> items = new Dictionary <String, String>();

            items.Add("oauth_consumer_key", connect.ConsumerKey);
            //items.Add( "access_token", accessToken );
            items.Add("oauth_version", "2.a");
            items.Add("scope", "all");
            items.Add("openid", openId);
            items.Add("format", "json");
            items.Add("clientip", "8.8.8.8");
            return(items);
        }
コード例 #5
0
        public void testUploadPic()
        {
            Console.WriteLine("请按任意键开始……");
            Console.ReadLine();

            QQWeiboConnect connect = AuthConnectFactory.GetConnect(typeof(QQWeiboConnect).FullName) as QQWeiboConnect;

            if (connect == null)
            {
                throw new Exception("尚未配置");
            }

            AccessToken x = new AccessToken {
                Token = accessToken, Uid = openId
            };
            JsonObject jsonValue = connect.PublishPic(x, "这是测试的微博内容" + DateTime.Now, "c:\\testpic.jpg");

            Assert.AreEqual("ok", jsonValue["msg"].ToString());
        }
コード例 #6
0
        public void testDelete()
        {
            Console.WriteLine("请按任意键开始……");
            Console.ReadLine();

            // 1)现发布一条微博
            QQWeiboConnect connect = AuthConnectFactory.GetConnect(typeof(QQWeiboConnect).FullName) as QQWeiboConnect;

            if (connect == null)
            {
                throw new Exception("尚未配置");
            }

            JsonObject jsonValue = OAuthClient.Init("https://open.t.qq.com/api/t/add", accessToken, "POST")
                                   .AddParam(defaultParams(connect))
                                   .AddParam("content", "这是测试的微博内容" + DateTime.Now)
                                   .RunJson();

            Assert.AreEqual("ok", jsonValue["msg"]);

            // 2)获取此微博的id
            JsonObject data      = jsonValue.GetJson("data");
            long       currentId = data.Get <long>("id");

            Assert.IsTrue(currentId > 0);

            // 3)删除刚刚发布的微博
            Console.WriteLine("开始删除……" + currentId);

            JsonObject obj = OAuthClient.Init("https://open.t.qq.com/api/t/del", accessToken, "POST")
                             .AddParam(defaultParams(connect))
                             .AddParam("id", currentId)
                             .RunJson();

            Assert.AreEqual("ok", obj.Get("msg"));
        }