diff --git a/wxbot.py b/wxbot.py index 3f7ab70..74ea073 100644 --- a/wxbot.py +++ b/wxbot.py @@ -874,6 +874,38 @@ class WXBot: dic = r.json() return dic['BaseResponse']['Ret'] == 0 + def invite_friend_to_group(self,uid,group_name): + """ + 将好友加入到群中。对人数多的群,需要调用此方法。 + 拉人时,可以先尝试使用add_friend_to_group方法,当调用失败(Ret=1)时,再尝试调用此方法。 + """ + gid = '' + # 通过群名获取群id,群没保存到通讯录中的话无法添加哦 + for group in self.group_list: + if group['NickName'] == group_name: + gid = group['UserName'] + if gid == '': + return False + # 通过群id判断uid是否在群中 + for user in self.group_members[gid]: + if user['UserName'] == uid: + # 已经在群里面了,不用加了 + return True + url = self.base_uri + '/webwxupdatechatroom?fun=invitemember&pass_ticket=%s' % self.pass_ticket + params = { + "InviteMemberList": uid, + "ChatRoomName": gid, + "BaseRequest": self.base_request + } + headers = {'content-type': 'application/json; charset=UTF-8'} + data = json.dumps(params, ensure_ascii=False).encode('utf8') + try: + r = self.session.post(url, data=data, headers=headers) + except (ConnectionError, ReadTimeout): + return False + dic = r.json() + return dic['BaseResponse']['Ret'] == 0 + def delete_user_from_group(self,uname,gid): """ 将群用户从群中剔除,只有群管理员有权限