Exemplo n.º 1
0
        public List <ReadNum> GetUserRead(int beginDay = -7, int endDay = -1)
        {
            CultureInfo    provider       = CultureInfo.InvariantCulture;
            List <ReadNum> readNumList    = new List <ReadNum>();
            string         urlGetUserRead = $"https://api.weixin.qq.com/datacube/getuserread?access_token={_accessToken}";

            for (int i = beginDay; i < endDay + 1; i++)
            {
                string  date       = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
                JObject posJObject = new JObject
                {
                    { "begin_date", date },
                    { "end_date", date }
                };
                string  outJson    = Requests.HttpPost(urlGetUserRead, posJObject.ToString());
                JObject outJObject = JObject.Parse(outJson);
                JArray  dataJArray = JArray.FromObject(outJObject["list"]);
                if (dataJArray.Count == 0)
                {
                    continue;
                }
                JObject mainJObject = JObject.FromObject(dataJArray.First);
                ReadNum readNum     = new ReadNum
                {
                    ref_date            = DateTime.ParseExact((string)mainJObject["ref_date"], "yyyy-MM-dd", provider),
                    int_page_read_count = (int)mainJObject["int_page_read_count"]
                };
                readNumList.Add(readNum);
            }

            return(readNumList);
        }
Exemplo n.º 2
0
        public void GetUserData(out List <UserSummary> userSummaries, out List <UserCumulate> userCumulates)
        {
            userSummaries = new List <UserSummary>();
            userCumulates = new List <UserCumulate>();
            CultureInfo provider = CultureInfo.InvariantCulture;

            string beginDate = DateTime.Now.AddDays(-7).ToString("yyyy-MM-dd");
            string endDate   = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");

            JObject posJObject = new JObject
            {
                { "begin_date", beginDate },
                { "end_date", endDate }
            };
            string urlGetusersummary  = $"https://api.weixin.qq.com/datacube/getusersummary?access_token={_accessToken}";
            string urlGetusercumulate = $"https://api.weixin.qq.com/datacube/getusercumulate?access_token={_accessToken}";

            string  outGetusersummary        = Requests.HttpPost(urlGetusersummary, posJObject.ToString());
            JObject outGetusersummaryJObject = JObject.Parse(outGetusersummary);
            JArray  usersummaryJArray        = JArray.FromObject(outGetusersummaryJObject["list"]);

            foreach (var usersummary in usersummaryJArray.Children())
            {
                JObject     itemJObject = JObject.FromObject(usersummary);
                UserSummary userSummary = new UserSummary
                {
                    ref_date    = DateTime.ParseExact((string)itemJObject["ref_date"], "yyyy-MM-dd", provider),
                    user_source = (int)itemJObject["user_source"],
                    new_user    = (int)itemJObject["new_user"],
                    cancel_user = (int)itemJObject["cancel_user"]
                };
                userSummaries.Add(userSummary);
            }

            string  outGetusercumulate        = Requests.HttpPost(urlGetusercumulate, posJObject.ToString());
            JObject outGetusercumulateJObject = JObject.Parse(outGetusercumulate);
            JArray  usercumulateJArray        = JArray.FromObject(outGetusercumulateJObject["list"]);

            foreach (var usercumulate in usercumulateJArray.Children())
            {
                JObject      itemJObject  = JObject.FromObject(usercumulate);
                UserCumulate userCumulate = new UserCumulate
                {
                    ref_date      = DateTime.ParseExact((string)itemJObject["ref_date"], "yyyy-MM-dd", provider),
                    cumulate_user = (int)itemJObject["cumulate_user"]
                };
                userCumulates.Add(userCumulate);
            }
        }
Exemplo n.º 3
0
        public List <ArticleReadNum> GetArticleRead(int beginDay = -7, int endDay = -1)
        {
            CultureInfo           provider        = CultureInfo.InvariantCulture;
            List <ArticleReadNum> articleReadNums = new List <ArticleReadNum>();
            string urlGetArticleTotal             = $"https://api.weixin.qq.com/datacube/getarticletotal?access_token={_accessToken}";

            for (int i = beginDay; i < endDay + 1; i++)
            {
                string  date       = DateTime.Now.AddDays(i).ToString("yyyy-MM-dd");
                JObject posJObject = new JObject
                {
                    { "begin_date", date },
                    { "end_date", date }
                };
                string  outJson    = Requests.HttpPost(urlGetArticleTotal, posJObject.ToString());
                JObject outJObject = JObject.Parse(outJson);
                JArray  dataJArray = JArray.FromObject(outJObject["list"]);
                foreach (var article in dataJArray.Children())
                {
                    JObject        articleJObject = JObject.FromObject(article);
                    ArticleReadNum articleReadNum = new ArticleReadNum
                    {
                        ref_date   = DateTime.ParseExact((string)articleJObject["ref_date"], "yyyy-MM-dd", provider),
                        title      = (string)articleJObject["title"],
                        ReadTotals = new List <ArticleReadNum.DailyReadTotal>()
                    };
                    JArray dailyReadArray = JArray.FromObject(articleJObject["details"]);
                    foreach (var dailyData in dailyReadArray.Children())
                    {
                        JObject dailyReadJObject = JObject.FromObject(dailyData);
                        ArticleReadNum.DailyReadTotal dailyReadTotal = new ArticleReadNum.DailyReadTotal
                        {
                            stat_date           = DateTime.ParseExact((string)dailyReadJObject["stat_date"], "yyyy-MM-dd", provider),
                            int_page_read_count = (int)dailyReadJObject["int_page_read_count"],
                        };
                        articleReadNum.ReadTotals.Add(dailyReadTotal);
                    }
                    articleReadNums.Add(articleReadNum);
                }
            }

            return(articleReadNums);
        }
Exemplo n.º 4
0
        public List <ApprovalData> GetApprovalData()
        {
            List <ApprovalData> list = new List <ApprovalData>();

            string url         = @"https://qyapi.weixin.qq.com/cgi-bin/corp/getapprovaldata?access_token=" + _approvalAccessToken;
            string requestJson = new JObject
            {
                { "starttime", (DateTime.Now.AddDays(-7).Date.ToUniversalTime().Ticks - 621355968000000000) / 10000000 },
                { "endtime", (DateTime.Now.AddDays(-1).ToUniversalTime().Ticks - 621355968000000000) / 10000000 }
            }.ToString();
            string returnjson =
                Requests.HttpPost(url,
                                  requestJson);
            JObject returnJObject = JObject.Parse(returnjson);

            if ((int)returnJObject["errcode"] != 0)
            {
                throw new Exception((string)returnJObject["errmsg"]);
            }
            JArray itemsArray = JArray.FromObject(returnJObject["data"]);

            foreach (var item in itemsArray.Children())
            {
                JObject      itemJObject = JObject.Parse(item.ToString());
                ApprovalData data        = new ApprovalData
                {
                    apply_name    = (string)itemJObject["apply_name"],
                    apply_org     = (string)itemJObject["apply_org"],
                    apply_time    = (int)itemJObject["apply_time"],
                    apply_user_id = (string)itemJObject["apply_user_id"],
                    sp_num        = (ulong)itemJObject["sp_num"],
                    sp_status     = (ApprovalStatus)(int)itemJObject["sp_status"],
                    spname        = (string)itemJObject["spname"]
                };
                list.Add(data);
            }
            return(list);
        }
Exemplo n.º 5
0
        /// <summary>
        /// Send Message to Work WeChat
        /// </summary>
        /// <param name="message">the message body</param>
        public void Send(string message)
        {
            string  touser = MainFunc.IsDebug ? Environment.GetEnvironmentVariable("DebugSend") : "";
            JObject json   = new JObject
            {
                { "touser", touser == "" ? "@all" : touser },
                { "msgtype", "text" },
                { "agentid", Environment.GetEnvironmentVariable("WorkWeChatAppId") },
                { "text", new JObject {
                      { "content", message }
                  } }
            };
            string url        = "https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=" + _accessToken;
            string returnjson =
                Requests.HttpPost(url,
                                  json.ToString());
            JObject rj = JObject.Parse(returnjson);

            if ((string)rj["errcode"] != "0")
            {
                throw new Exception($"Send Message ERR {(string) rj["errcode"]} {(string) rj["errmsg"]}");
            }
        }
Exemplo n.º 6
0
        public void GetReadData(out List <ReadNum> readNums, out List <ArticleReadNum> articleReadNums)
        {
            CultureInfo provider = CultureInfo.InvariantCulture;

            readNums = new List <ReadNum>();
            string urlgetuserread = $"https://api.weixin.qq.com/datacube/getuserread?access_token={_accessToken}";

            for (int i = 1; i < 8; i++)
            {
                string  date       = DateTime.Now.AddDays(-i).ToString("yyyy-MM-dd");
                JObject posJObject = new JObject
                {
                    { "begin_date", date },
                    { "end_date", date }
                };
                string  outJson    = Requests.HttpPost(urlgetuserread, posJObject.ToString());
                JObject outJObject = JObject.Parse(outJson);
                JArray  dataJArray = JArray.FromObject(outJObject["list"]);
                if (dataJArray.Count == 0)
                {
                    continue;
                }
                JObject mainJObject = JObject.FromObject(dataJArray.First);
                ReadNum readNum     = new ReadNum
                {
                    ref_date            = DateTime.ParseExact((string)mainJObject["ref_date"], "yyyy-MM-dd", provider),
                    int_page_read_count = (int)mainJObject["int_page_read_count"]
                };
                readNums.Add(readNum);
            }

            articleReadNums = new List <ArticleReadNum>();
            string urlgetarticletotal = $"https://api.weixin.qq.com/datacube/getarticletotal?access_token={_accessToken}";

            for (int i = 1; i < 8; i++)
            {
                string  date       = DateTime.Now.AddDays(-i - 7).ToString("yyyy-MM-dd");
                JObject posJObject = new JObject
                {
                    { "begin_date", date },
                    { "end_date", date }
                };
                string  outJson    = Requests.HttpPost(urlgetarticletotal, posJObject.ToString());
                JObject outJObject = JObject.Parse(outJson);
                JArray  dataJArray = JArray.FromObject(outJObject["list"]);
                foreach (var article in dataJArray.Children())
                {
                    JObject        articleJObject = JObject.FromObject(article);
                    ArticleReadNum articleReadNum = new ArticleReadNum
                    {
                        ref_date   = DateTime.ParseExact((string)articleJObject["ref_date"], "yyyy-MM-dd", provider),
                        title      = (string)articleJObject["title"],
                        ReadTotals = new List <ArticleReadNum.DailyReadTotal>()
                    };
                    JArray dailyreadArray = JArray.FromObject(articleJObject["details"]);
                    foreach (var dailydata in dailyreadArray.Children())
                    {
                        JObject dailyreadJObject = JObject.FromObject(dailydata);
                        ArticleReadNum.DailyReadTotal dailyReadTotal = new ArticleReadNum.DailyReadTotal
                        {
                            stat_date           = DateTime.ParseExact((string)dailyreadJObject["stat_date"], "yyyy-MM-dd", provider),
                            int_page_read_count = (int)dailyreadJObject["int_page_read_count"],
                        };
                        articleReadNum.ReadTotals.Add(dailyReadTotal);
                    }
                    articleReadNums.Add(articleReadNum);
                }
            }
        }