/// <summary>
 /// 移动用户分组
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="openId">用户唯一标识符</param>
 /// <param name="toGroupId">分组id</param>
 /// <returns></returns>
 public static WxJsonResult Groups_MemberUpdate(string accessToken, string openId, int toGroupId)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/members/update?access_token={0}";
     var data = new
     {
         openid = openId,
         to_groupid = toGroupId
     };
     return CommonJsonSend.Send(accessToken, urlFormat, data);
 }
        /// <summary>
        /// 获取接口分析分时数据(getinterfacesummaryhour)
        /// 最大时间跨度 1
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="beginDate">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
        /// <param name="endDate">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
        /// <returns></returns>
        public static UserCumulateResultJson GetInterfaceSummaryHour(string accessToken, string beginDate, string endDate)
        {
            string urlFormat = "https://api.weixin.qq.com/datacube/getinterfacesummaryhour?access_token={0}";

            var data = new
            {
                begin_date = beginDate,
                end_date = endDate
            };

            return CommonJsonSend.Send<UserCumulateResultJson>(accessToken, urlFormat, data);
        }
 /// <summary>
 /// 创建分组
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="name">分组名称</param>
 /// <returns></returns>
 public static CreateGroupResult Groups_Create(string accessToken, string name)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}";
     var data = new
     {
         group = new
         {
             name = name
         }
     };
     return CommonJsonSend.Send<CreateGroupResult>(accessToken, urlFormat, data);
 }
        /// <summary>
        /// 获取用户增减数据
        /// 最大时间跨度 7
        /// </summary>
        /// <param name="accessToken">调用接口凭证</param>
        /// <param name="beginDate">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
        /// <param name="endDate">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
        /// <returns></returns>
        public static UserSummaryResultJson GetUserSummary(string accessToken, string beginDate, string endDate)
        {
            string urlFormat = "https://api.weixin.qq.com/datacube/getusersummary?access_token={0}";

            var data = new
            {
                begin_date = beginDate,
                end_date = endDate
            };

            return CommonJsonSend.Send<UserSummaryResultJson>(accessToken, urlFormat, data);
        }
        /// <summary>
        /// 获取图文群发总数据(getarticletotal)
        /// 请注意,details中,每天对应的数值为该文章到该日为止的总量(而不是当日的量)
        /// 最大时间跨度 1
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="beginDate">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
        /// <param name="endDate">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
        /// <returns></returns>
        public static ArticleTotalResultJson GetArticleTotal(string accessToken, string beginDate, string endDate)
        {
            string urlFormat = "https://api.weixin.qq.com/datacube/getarticletotal?access_token={0}";

            var data = new
            {
                begin_date = beginDate,
                end_date = endDate
            };

            return CommonJsonSend.Send<ArticleTotalResultJson>(accessToken, urlFormat, data);
        }
        /// <summary>
        /// 获取消息发送周数据(getupstreammsgweek)
        /// 最大时间跨度 30
        /// </summary>
        /// <param name="accessToken"></param>
        /// <param name="beginDate">获取数据的起始日期,begin_date和end_date的差值需小于“最大时间跨度”(比如最大时间跨度为1时,begin_date和end_date的差值只能为0,才能小于1),否则会报错</param>
        /// <param name="endDate">获取数据的结束日期,end_date允许设置的最大值为昨日</param>
        /// <returns></returns>
        public static UpStreamMsgWeekResultJson GetUpStreamMsgWeek(string accessToken, string beginDate, string endDate)
        {
            string urlFormat = "https://api.weixin.qq.com/datacube/getupstreammsgweek?access_token={0}";

            var data = new
            {
                begin_date = beginDate,
                end_date = endDate
            };

            return CommonJsonSend.Send<UpStreamMsgWeekResultJson>(accessToken, urlFormat, data);
        }
 /// <summary>
 /// 修改分组名
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="id">分组id,由微信分配</param>
 /// <param name="name">分组名字(30个字符以内)</param>
 /// <returns></returns>
 public static WxJsonResult Groups_Update(string accessToken, int id, string name)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/update?access_token={0}";
     var data = new
     {
         group = new
         {
             id = id,
             name = name
         }
     };
     return CommonJsonSend.Send(accessToken, urlFormat, data);
 }
 /// <summary>
 /// 查询用户所在分组
 /// </summary>
 /// <param name="accessToken"></param>
 /// <param name="openId">用户的OpenID</param>
 /// <returns></returns>
 public static GetGroupIdResult Groups_GetId(string accessToken, string openId)
 {
     var urlFormat = "https://api.weixin.qq.com/cgi-bin/groups/getid?access_token={0}";
     var data = new { openid = openId };
     return CommonJsonSend.Send<GetGroupIdResult>(accessToken, urlFormat, data);
 }