示例#1
0
        /// <summary>
        /// 获取所有微信用户分组
        /// </summary>
        /// <returns></returns>
        public static List <WeChatGroup> GetAllGroup()
        {
            List <WeChatGroup> grouplist = new List <WeChatGroup>();

            try
            {
                string access_token = WeChatAccessTokenAPI.GetWeChatAccess_token();
                string url          = string.Format("https://api.weixin.qq.com/cgi-bin/groups/get?access_token={0}", access_token);
                string json         = HttpUtils.Ins.GET(url);
                if (json.Contains("errcode"))
                {
                    ClassLoger.Fail("WeChatGroupAPI.GetAllGroup", json);
                    return(null);
                }
                Dictionary <string, object>         dic    = JsonHelper.DeserializeObject(json);
                List <Dictionary <string, object> > groups = dic["groups"] as List <Dictionary <string, object> >;
                foreach (var group in groups)
                {
                    WeChatGroup info = new WeChatGroup();
                    info.count = group["count"].TryToInt(0);
                    info.id    = group["id"].TryToInt(0);
                    info.name  = group["name"].TryToString();
                    grouplist.Add(info);
                }
            } catch (Exception ex)
            {
                ClassLoger.Error("WeChatGroupAPI.GetAllGroup", ex);
            }
            return(grouplist);
        }
		public override object Deserialize(IDictionary<string, object> dictionary, Type type, JavaScriptSerializer serializer)
		{
			WeChatGroup data = new WeChatGroup();

			data.AccountID = dictionary.GetValue("accountID", string.Empty);
			data.GroupID = dictionary.GetValue("id", 0);
			data.Name = dictionary.GetValue("name", string.Empty);
			data.Count = dictionary.GetValue("cnt", 0);
			data.CreateTime = dictionary.GetValue("createTime", DateTime.MinValue);
			data.UpdateTime = dictionary.GetValue("updateTime", DateTime.MinValue);

			return data;
		}
        public override object Deserialize(IDictionary <string, object> dictionary, Type type, JavaScriptSerializer serializer)
        {
            WeChatGroup data = new WeChatGroup();

            data.AccountID  = dictionary.GetValue("accountID", string.Empty);
            data.GroupID    = dictionary.GetValue("id", 0);
            data.Name       = dictionary.GetValue("name", string.Empty);
            data.Count      = dictionary.GetValue("cnt", 0);
            data.CreateTime = dictionary.GetValue("createTime", DateTime.MinValue);
            data.UpdateTime = dictionary.GetValue("updateTime", DateTime.MinValue);

            return(data);
        }
        public override IDictionary <string, object> Serialize(object obj, JavaScriptSerializer serializer)
        {
            Dictionary <string, object> dictionary = new Dictionary <string, object>();
            WeChatGroup data = (WeChatGroup)obj;

            dictionary.AddNonDefaultValue("accountID", data.AccountID);
            dictionary.AddNonDefaultValue("id", data.GroupID);
            dictionary.AddNonDefaultValue("name", data.Name);
            dictionary.AddNonDefaultValue("cnt", data.Count);
            dictionary.AddNonDefaultValue("createTime", data.CreateTime);
            dictionary.AddNonDefaultValue("updateTime", data.UpdateTime);

            return(dictionary);
        }
        private void SynchronizeGroupsAndMembersToWeChat()
        {
            var allGroups = ConditionalGroupAdapter.Instance.LoadAll();
            var accounts  = AccountInfoAdapter.Instance.LoadAll();

            WeChatGroupCollection weChatGroups = WeChatGroupAdapter.Instance.LoadAll();

            foreach (var account in accounts)
            {
                WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password);
                Thread.Sleep(1000);

                foreach (var group in allGroups)
                {
                    var fakeIDs = WeChatFriendAdapter.Instance.GetFakeIDsByLocalGroupID(group.GroupID).ToArray(); //找到本组里成员的fakeID

                    var matchedGroup = weChatGroups.Find(p => p.Name == group.Name && p.AccountID == WeChatRequestContext.Current.LoginInfo.AccountID);

                    int groupID = 0;
                    if (matchedGroup == null)
                    {
                        var modifiedGroup = WeChatHelper.AddGroup(group.Name, WeChatRequestContext.Current.LoginInfo);
                        Thread.Sleep(1000);

                        var newGroup = new WeChatGroup()
                        {
                            AccountID = account.AccountID,
                            GroupID   = modifiedGroup.GroupId,
                            Name      = group.Name,
                            Count     = modifiedGroup.MemberCnt
                        };

                        WeChatGroupAdapter.Instance.Update(newGroup);

                        groupID = modifiedGroup.GroupId;
                    }
                    else
                    {
                        groupID = matchedGroup.GroupID;
                    }

                    if (fakeIDs.Length > 0)
                    {
                        WeChatHelper.ChangeFriendsGroup(groupID, fakeIDs, WeChatRequestContext.Current.LoginInfo);
                        Thread.Sleep(1000);
                    }
                }
            }
        }
        private void SynchronizeGroupsAndMembersToWeChat()
        {
            var allGroups = ConditionalGroupAdapter.Instance.LoadAll();
            var accounts = AccountInfoAdapter.Instance.LoadAll();

            WeChatGroupCollection weChatGroups = WeChatGroupAdapter.Instance.LoadAll();
            foreach (var account in accounts)
            {
                WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password);
                Thread.Sleep(1000);

                foreach (var group in allGroups)
                {
                    var fakeIDs = WeChatFriendAdapter.Instance.GetFakeIDsByLocalGroupID(group.GroupID).ToArray(); //找到本组里成员的fakeID
                    
                    var matchedGroup = weChatGroups.Find(p => p.Name == group.Name && p.AccountID == WeChatRequestContext.Current.LoginInfo.AccountID);

                    int groupID = 0;
                    if (matchedGroup == null)
                    {
                        var modifiedGroup = WeChatHelper.AddGroup(group.Name, WeChatRequestContext.Current.LoginInfo);
                        Thread.Sleep(1000);

                        var newGroup = new WeChatGroup()
                        {
                            AccountID = account.AccountID,
                            GroupID = modifiedGroup.GroupId,
                            Name = group.Name,
                            Count = modifiedGroup.MemberCnt
                        };

                        WeChatGroupAdapter.Instance.Update(newGroup);

                        groupID = modifiedGroup.GroupId;
                    }
                    else
                    {
                        groupID = matchedGroup.GroupID;
                    }

                    if (fakeIDs.Length > 0)
                    {
                        WeChatHelper.ChangeFriendsGroup(groupID, fakeIDs, WeChatRequestContext.Current.LoginInfo);
                        Thread.Sleep(1000);
                    }
                }
            }
        }
示例#7
0
 /// <summary>
 /// 创建微信用户分组
 /// </summary>
 /// <param name="groupName"></param>
 /// <returns></returns>
 public static WeChatGroup CreateGroup(string groupName)
 {
     try
     {
         string url        = string.Format("https://api.weixin.qq.com/cgi-bin/groups/create?access_token={0}", SystemSet.Token);
         string postJson   = "{\"group\":{\"name\":\"" + groupName + "\"}}";
         string resultJson = HttpUtils.Ins.POST(url, postJson);
         if (resultJson.Contains("errcode"))
         {
             ClassLoger.Fail("WeChatGroupAPI.CreateGroup", resultJson);
             return(null);
         }
         Dictionary <string, object> dic      = JsonHelper.DeserializeObject(resultJson);
         Dictionary <string, object> groupdic = dic["group"] as Dictionary <string, object>;
         WeChatGroup group = new WeChatGroup();
         group.id   = groupdic["id"].TryToInt(0);
         group.name = groupdic["name"].TryToString();
         return(group);
     } catch (Exception ex)
     {
         ClassLoger.Error("WeChatGroupAPI.CreateGroup", ex);
     }
     return(null);
 }
示例#8
0
        private void SynchronizeToWeChat()
        {
            try
            {
                ProcessProgress.Current.RegisterResponser(SubmitButtonProgressResponser.Instance);

                var allGroups = ConditionalGroupAdapter.Instance.LoadAll();
                var accounts  = AccountInfoAdapter.Instance.LoadAll();

                WeChatGroupCollection weChatGroups = WeChatGroupAdapter.Instance.LoadAll();

                ProcessProgress.Current.MaxStep     = allGroups.Count * accounts.Count;
                ProcessProgress.Current.CurrentStep = 0;
                ProcessProgress.Current.StatusText  = "开始同步...";
                ProcessProgress.Current.Response();

                foreach (var account in accounts)
                {
                    WeChatRequestContext.Current.LoginInfo = WeChatHelper.ExecLogin(account.UserID, account.Password);

                    Thread.Sleep(1000);

                    foreach (var group in allGroups)
                    {
                        var fakeIDs = WeChatFriendAdapter.Instance.GetFakeIDsByLocalGroupID(group.GroupID).ToArray(); //找到本组里成员的fakeID

                        var matchedGroup = weChatGroups.Find(p => p.Name == group.Name && p.AccountID == WeChatRequestContext.Current.LoginInfo.AccountID);

                        int groupID = 0;
                        if (matchedGroup == null)
                        {
                            var modifiedGroup = WeChatHelper.AddGroup(group.Name, WeChatRequestContext.Current.LoginInfo);
                            var newGroup      = new WeChatGroup()
                            {
                                AccountID = account.AccountID,
                                GroupID   = modifiedGroup.GroupId,
                                Name      = group.Name,
                                Count     = modifiedGroup.MemberCnt
                            };

                            WeChatGroupAdapter.Instance.Update(newGroup);
                            Thread.Sleep(1000);
                            groupID = modifiedGroup.GroupId;
                        }
                        else
                        {
                            groupID = matchedGroup.GroupID;
                        }

                        if (fakeIDs.Length > 0)
                        {
                            WeChatHelper.ChangeFriendsGroup(groupID, fakeIDs, WeChatRequestContext.Current.LoginInfo);
                        }

                        ProcessProgress.Current.Increment();
                        ProcessProgress.Current.StatusText = string.Format("帐号\"{0}\",同步组\"{1}\"完成", account.UserID, group.Name);
                        ProcessProgress.Current.Response();
                        Thread.Sleep(1000);
                    }
                }

                ProcessProgress.Current.StatusText = string.Format("同步完成");
                ProcessProgress.Current.Response();
                Thread.Sleep(1000);
            }
            catch (Exception ex)
            {
                WebUtility.ResponseShowClientErrorScriptBlock(ex);
            }
            finally
            {
                this.Response.Write(SubmitButton.GetResetAllParentButtonsScript(true));
                this.Response.End();
            }
        }