用wxBot和图灵机器人API实现微信群聊机器人

1 实现方案

wxBot登录微信,接收、发送微信消息。

图灵机器人 API对消息作回复。

2 实现效果

机器人会回复来自联系人的消息,以及群里@此账号的消息。

注意要将对应的群保存到联系人。

3 运行方法

  1. 下载wxBot, 安装python的依赖包。
  2. 图灵机器人官网注册账号,申请图灵key: 图灵key申请地址
  3. 在bot.py文件所在目录下新建conf.ini文件,内容为(key字段内容为申请到的图灵key):
    [main]
    key=1d2678900f734aa0a23734ace8aec5b1
  4. 运行bot.py

4 完整代码

bot.py

#!/usr/bin/env python
# coding: utf-8

from wxbot import *
import ConfigParser
import json

class TulingWXBot(WXBot):
    def __init__(self):
        WXBot.__init__(self)

        self.tuling_key = ""

        try:
            cf = ConfigParser.ConfigParser()
            cf.read(‘conf.ini‘)
            self.tuling_key = cf.get(‘main‘, ‘key‘)
        except Exception:
            pass
        print ‘tuling_key:‘, self.tuling_key

    def tuling_auto_reply(self, uid, msg):
        if self.tuling_key:
            url = "http://www.tuling123.com/openapi/api"
            user_id = uid.replace(‘@‘, ‘‘)[:30]
            body = {‘key‘: self.tuling_key, ‘info‘: msg.encode(‘utf8‘), ‘userid‘: user_id}
            r = requests.post(url, data=body)
            respond = json.loads(r.text)
            result = ‘‘
            if respond[‘code‘] == 100000:
                result = respond[‘text‘].replace(‘<br>‘, ‘  ‘)
            elif respond[‘code‘] == 200000:
                result = respond[‘url‘]
            else:
                result = respond[‘text‘].replace(‘<br>‘, ‘  ‘)

            return result
        else:
            return u"知道啦"

    def handle_msg_all(self, msg):
        if msg[‘msg_type_id‘] == 4 and msg[‘content‘][‘type‘] == 0:  # text message from contact
            self.send_msg_by_uid(self.tuling_auto_reply(msg[‘user‘][‘id‘], msg[‘content‘][‘data‘]), msg[‘user‘][‘id‘])
        elif msg[‘msg_type_id‘] == 3:  # group message
            if msg[‘content‘][‘data‘].find(‘@‘) >= 0:  # someone @ another
                my_names = self.get_group_member_name(msg[‘user‘][‘id‘], self.user[‘UserName‘])
                if my_names is None:
                    my_names = {}
                if ‘NickName‘ in self.user and len(self.user[‘NickName‘]) > 0:
                    my_names[‘nickname2‘] = self.user[‘NickName‘]
                if ‘RemarkName‘ in self.user and len(self.user[‘RemarkName‘]) > 0:
                    my_names[‘remark_name2‘] = self.user[‘RemarkName‘]
                is_at_me = False
                text_msg = ‘‘
                for _ in my_names:
                    if msg[‘content‘][‘data‘].find(‘@‘+my_names[_]) >= 0:
                        is_at_me = True
                        text_msg = msg[‘content‘][‘data‘].replace(‘@‘+my_names[_], ‘‘).strip()
                        break
                if is_at_me:  # someone @ me
                    snames = self.get_group_member_name(msg[‘user‘][‘id‘], msg[‘content‘][‘user‘][‘id‘])
                    src_name = ‘‘
                    if ‘display_name‘ in snames:
                        src_name = snames[‘display_name‘]
                    elif ‘nickname‘ in snames:
                        src_name = snames[‘nickname‘]
                    elif ‘remark_name‘ in snames:
                        src_name = snames[‘remark_name‘]

                    if src_name != ‘‘:
                        reply = ‘@‘ + src_name + ‘ ‘
                        if msg[‘content‘][‘type‘] == 0:  # text message
                            reply += self.tuling_auto_reply(msg[‘content‘][‘user‘][‘id‘], text_msg)
                        else:
                            reply += u"对不起,只认字,其他杂七杂八的我都不认识,,,???,,"
                        self.send_msg_by_uid(reply, msg[‘user‘][‘id‘])

def main():
    bot = TulingWXBot()
    bot.DEBUG = True
    bot.conf[‘qr‘] = ‘png‘
    bot.run()

if __name__ == ‘__main__‘:
    main()
时间: 2024-11-13 09:13:07

用wxBot和图灵机器人API实现微信群聊机器人的相关文章

使用java做一个能赚钱的微信群聊机器人(2020年基于PC端协议最新可用版)

前言 微信群机器人,主要用来管理群聊,提供类似天气查询.点歌.机器人聊天等用途. 由于微信将web端的协议封杀后,很多基于http协议的群聊机器人都失效了,所以这里使用基于PC端协议的插件来实现. 声明以下过程只用于交流学习,并不用于任何商业用途,这里记录一下整体的开发流程. 效果展示 接入过程 准备材料 下文中的服务器可以只需要一台,或者使用你本地电脑,我介绍一下我的环境. 可爱猫微信机器人插件V4.4.0. 一台windows服务器. 一台linux服务器. nginx安装(在window服

Zabbix配置企业微信群聊机器人告警

原文地址:https://blog.51cto.com/14483703/2481984

如何用20行Python代码打造一个微信群聊助手?

今天要教大家一个黑科技,20行代码实现自己定制的微信群聊助手,可以用来活跃群气氛,好多群主创建完群后,拉完一群人,之后就一片寂静,有个群聊助手,就可以帮忙活跃群里气氛,通过今天在自己的微信上有一大批好友的公测,效果还可以.(ps:其实最大胆感受还是,这货比我还会撩妹,撩起妹来一套一套的,晒一波自动撩妹图) 废话不说了,具体操做如下: 1.安装python环境,python2.x或着python3.x都行对此程序无影响 2.mac自带python,只需要安装python的itchat库即可 pip

带你装逼带你飞之微信群聊匿名消息

带你装逼带你飞之微信群聊匿名消息 记得八月份网上有个IOS版的微信匿名消息插件,可是2天后被封了...废话不说,其实封的是插件,不是原理~ 九月份,UWP 微信出来了(?),然而那个微信有BUG,比如模板消息可以随便转发...(就是类似微信支付消息,登陆通知消息etc…)所以可以利用这一点进行发送装逼消息.(如果还想长时间装逼,那么请关闭自动更新功能) 如果你有公众号那么就发个消息直接转发吧,如果没有的话照下面做... 发消息前的准备:退出UWP微信的登陆并清空所有数据.Windbg调试工具并于

使用图灵机器人api搭建微信聊天机器人php实现

之前通过hook技术实现了微信pc端发送消息功能,如果在结合图灵机器人就能实现微信聊天机器人. 代码下载:http://blog.yshizi.cn/131.html 逻辑如下: 下面我简单介绍一下步骤. 首先,你需要下载我的微信助手,下载地址请参考我的博客文章: 通过对微信pc hook实现微信助手. 申请图灵机器人,并认证.申请地址,使用api接入并获取apikey(详细请参考图灵机器人官网) . 使用php实现访问图灵机器人api. php实现代码如下: <?php class Tulin

基于itchat的微信群聊小助手基础开发(一)

前段时间由于要管理微信群,基于itchat开发了一个简单的微信机器人 主要功能有: 图灵机器人功能 群聊昵称格式修改提示 消息防撤回功能 斗图功能 要开发一个基于itchat的最基本的聊天机器人,在github上作者已经给出基本的操作,本博文只对附加的功能进行说明总结. 确保已经了解itchat的基本操作,先对功能1和功能2进行说明: 1.图灵机器人功能 该功能也是最基础的功能之一,itchat的基础案例也有相关例子. 图灵机器人简单而言就是以一定的规则给图灵的服务器发送数据包,图灵的服务器会以

个人微信群聊的实现

最近发现了一个很好的插件,插件可以绑定自己的个人微信,绑定微信之后就能快速接入一个机器人.其实和现在市面上的qq机器人类似,接入到微信中,可以做到单聊也可以在微信群中聊天. 下面就介绍这个插件怎么使用的 (1)插件可以去图灵机器人官网上进行下载http://tuling123.com/html/doc/weichat_robot.html (2)进入图灵机器人官网,注册并登入图灵账号,在个人中心板块的“机器人接入”页面获取图灵机器人key(该key作为识别每个用户的唯一标识) (3)下载解压之后

通过钉钉群聊机器人推送zabbix告警

1.首先在zabbix服务端的alertscripts目录下新建一个dingding.sh脚本,内容如下: #!/bin/bash Content=$2 curl 'https://oapi.dingtalk.com/robot/send?access_token=XXXX' \ -H 'Content-Type: application/json' \ -d ' {"msgtype": "text", "text": { "conte

100人微信群继续加入者须身份验证?

前段时间发布的<互联网用户账号名称管理规定>自3月1日起施行,按照“后台实名.前台自愿”的原则,要求互联网信息服务使用者通过真实身份信息认证后注册账号.微信作为新兴的媒体平台自然也不能例外,最近有微信用户透露,微信群聊如达到 100 人上限继续加入者必须绑定银行卡以完成身份验证,否则无法加入. 微信 6.1.1 版本“帮助与反馈”中显示:微信群最多为 500 人,100 人以上的微信群主要针对已通过实名验证的微信用户:超过 40 人,你的邀请需要对方同意:超过 100 人,对方需要通过实名验证