/// <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); } } } }
/// <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); }
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(); } }