# 微信机器人 **Repository Path**: mianbao-one/wechat-robot ## Basic Information - **Project Name**: 微信机器人 - **Description**: wechat rebort - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-02-28 - **Last Updated**: 2023-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 微信机器人 # Python三方库 pip install itchat-uos==1.5.0.dev0 使用方法见[itchat-uos](https://libraries.io/pypi/itchat-uos) # 发送消息给特定好友 ``` def send_msg(mesage,user_name): friends_list = itchat.get_friends(update=True) users = itchat.search_friends(name=u'%s' % user_name) userName = users[0]["UserName"] itchat.send(mesage,toUserName=userName) ``` # 发送消息给指定群 ``` def send_group(mesage,group_name): group_list = itchat.get_chatrooms(update=True) groups = itchat.search_chatrooms(name=u'%s' % group_name) GroupName = groups[0]["UserName"] itchat.send(mesage,toUserName = GroupName) ``` # 接受微信信息(只接受用户,群消息不接收) ``` @itchat.msg_register(itchat.content.TEXT) def _(msg): """ user = msg['User'] #用户信息 user_name = user['NickName'] #用户名 user_com = user['RemarkName'] #备注名 """ user = msg['User'] #用户信息 user_com = user['RemarkName'] #备注名 print(user_com+'说:',msg.text) info_msg = msg.text get_response(info_msg,'user') ``` # 接受微信群信息 ``` @itchat.msg_register(TEXT,isGroupChat=True) # isGroupChat=True 监听群组消息 def get_group_msg(msg): group_info = msg.User #NickName group_name = group_info.NickName print(group_name+'群组:',msg.Text) info_msg = msg.Text get_response(info_msg,'group') ``` # file下载 下载好友发送的图片、语音、文件等 ``` @itchat.msg_register([PICTURE, RECORDING, ATTACHMENT, VIDEO]) def download_files(msg): msg.download(msg.fileName) typeSymbol = { PICTURE: 'img', VIDEO: 'vid', }.get(msg.type,'fil') return '@%s@%s' % (typeSymbol,msg.fileName) ``` # Python实现接受微信消息并调用图灵api 调用图灵机器人的api,202302228测试可用 ``` def get_response(msg): api = 'http://openapi.turingapi.com/openapi/api/v2' # dat = { "perception": { "inputText":{ "text": msg }, "inputImage":{ "url": "imageUrl" }, "selfInfo": { "location":{ "city": "北京", "province": "北京", "street": "阜外大街" } } }, "userInfo":{ "apiKey": "087c6eb643ce4781a8fad02cb6e5f571", #api_key自己买的,每天100次。现在还可用 "userId": "fool" } } dat = json.dumps(dat) r = requests.post(api,data=dat).json() mesage = r['results'][0]['values']['text'] print(r['results'][0]['values']['text']) #判断是用户还是群组 if sign == 'user': send_msg(mesage,user_name)#user_name为微信用户名称,非备注名 elif sign == 'group': send_group(mesage,group_name)#group_name为微信群名称 return mesage ``` (侵联删)