精华内容
下载资源
问答
  • QQ自动回复机器人

    2013-07-27 23:44:34
    QQ自动回复机器人
  • qq自动回复机器人qq自动回复机器人是一款非常好用的qq聊天智能回复软件。qq自动回复机器人可以在win7、win8等操作系统下完美运行,能使用各种不同类型语句进行聊天,是客户人员日常工作好帮手。qq自动回复机器人功能...

    qq自动回复机器人

    qq自动回复机器人是一款非常好用的qq聊天智能回复软件。qq自动回复机器人可以在win7、win8等操作系统下完美运行,能使用各种不同类型语句进行聊天,是客户人员日常工作好帮手。

    qq自动回复机器人功能介绍:

    一:动态循环发送方式:

    1:如果使用OICQ聊天,请选择QQ模式;如果在聊天室或QQ二人世界聊天请选择聊天室模式.

    2:点击发送按钮后用鼠标点击一下QQ或聊天室发言框即可循环发送语句.

    3:为了避免在切换窗口时造成发送混乱,建议选择锁定窗口发送(将鼠标在聊天窗口点击一下,然后按下ctrl+F8即可获得窗口标题).

    4:可以根据情况选择发送速度,还可以在功能设置中自定义发送时间间隔.

    二:静态单句发送方式:

    1:打开所选的QQ聊天窗口,双击列表框中的语句,即可自动发送语句到所选的各类QQ聊天窗口和QQ聊天室.

    2:为了使聊天更富情趣,可任意选择数十种句尾表情.

    三:自动回复功能

    1:填入要自动回复的好友或其他人的QQ号码(最多可填三个);选择单句回复或循环回复,点击启动按钮启动自动回复功能;

    2:在QQ系统参数设置中选择自动弹出窗口.

    3:如果没有在系统参数设置中选择自动弹出窗口.当发来消息时,点击闪动的头像亦可自动发送.

    4:每当有对应的QQ号码发来的消息时,便可自动选择聊天语句发送.

    展开全文
  • qq自动回复机器人.exe

    2020-04-26 18:21:51
    一个可以自动回复机器人,可以自己添加句子,可以帮助你运行你的QQ号,请勿用于商业行为,如有侵权,请私信博主!!!
  • 而作者的论坛的教程中部署成功的例子是:Myeclipse14+小薇机器人【一个较低版本】;所以建议直接用(Myeclipse15+JDK8+maven3+tomcat7+xiaov-master-1.0)【我就是这个组合】 转载于:...

    0. 本项目的原始代码及我二次开发后的代码

    1. 软件安装:【myeclipse6.0 + maven2】

    0. https://blog.csdn.net/zgmzyr/article/details/6886440
    1. https://blog.csdn.net/shuzhe66/article/details/45009175
    2. https://www.cnblogs.com/whgk/p/7112560.html
    
    <mirror>
          <id>nexus</id>
          <mirrorOf>*</mirrorOf>
          <name>Human Readable Name for this Mirror.</name>
          <url>http://127.0.0.1:8081/hzhang/content/groups/public/</url>
    </mirror>
    1. 后来发现太麻烦,直接用eclipse加插件吧!
    2. 后来发现eclipse + jetty运行小薇项目有很大问题,又回到Myeclipse15+maven3.2.3+tomcat7的怀抱!

    2. 对小薇机器人部署中遇到的错误(1):

    使用maven部署小薇项目的报错的总结:

    • 第一类错误:
    1.
    Description Resource    Path    Location    Type
    ArtifactTransferException: Failure to transfer com.alibaba:fastjson:jar:1.2.7 from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval of central has elapsed or updates are forced. Original error: Could not transfer artifact com.alibaba:fastjson:jar:1.2.7 from/to central (http://repo.maven.apache.org/maven2): connect timed out   pom.xml /xiaov-master   line 112    Maven Dependency Problem
    
    2. 
    Description Resource    Path    Location    Type
    ApiURL cannot be resolved   SmartQQClient.java  /xiaov-master/src/main/java/com/scienjus/smartqq/client line 124    Java Problem
    
    3. 
    xxx faied  (比如:org.apache.maven.plugins:maven-resources-plugin:2.7:resources:default-resources:process-resources)
    
    解决思路:maven依赖有问题,对比作者的教程,先添加完jar依赖,然后update maven project[请百度“eclipse update maven project”]
    • 第二类错误:
    1. 
    xxx.jar文件下载出错或者更新失败或者解析失败 [报错的中文我百度后翻译出来就这个意思] 
    
    解决思路:删除那个那个xxx.jar文件,再次下载更新 
    
    步骤如下:
    根据报错的xxx.jar,先找到.m2目录(或者你的maven安装目录)下的repository【这一步可以用一款软件:search everything】,找到【错误中出现的xxx.jar文件所在的父目录】,删除这个目录,然后进入Myeclipse界面(或者eclipse界面),找到maven4Myeclipse(或者是maven)那个栏目,右键,找到一个条目“update project”
    ,即可解决。

    3. eclipse中部署小薇机器人:

    • 报错:
    eclipse中安装jetty:
    1. https://www.cnblogs.com/nightswatch/p/4639687.html
    2. 运行小薇项目,发现竟然报错是jetty,而我对jetty完全不熟,所以放弃了eclipse+jetty方案,打算下一步用myeclipse部署。
    • 后来回顾:
      我尝试失败了。由于eclipse自己组装插件之间都有牵连关系,不适合新手。而作者的论坛的教程中部署成功的例子是:Myeclipse14+小薇机器人【一个较低版本】;所以建议直接用(Myeclipse15+JDK8+maven3+tomcat7+xiaov-master-1.0)【我就是这个组合】

    转载于:https://www.cnblogs.com/LS1314/p/9039304.html

    展开全文
  • qq智能回复机器人

    2014-09-11 17:49:16
    java qq自动回复机器人,调用了小黄鸡的接口
  • 今天抽了点时间,为大家写博客所以就顺便写了这样的一款软件,可以实现QQ群聊内自动回复消息,可以设置回复消息的时间间隔和回复次数,学习价值较高,喜欢的朋友来下载。
  • 一款可以接收QQ好友消息的软件,自动回复,可以自行设置QQ回答库,绝对无毒,本版本为试用版,部分功能还在完善,此版本只能接收聊天消息且自动回复,但是不能手动聊天,所以此软件的使用最好在你离开的时候可以进行...
  • QQ群聊天机器人 易语言 自动回复 QQ机器人免费版

    千次下载 热门讨论 2012-10-10 19:40:04
    QQ机器人 QQ群聊天机器人 自动回复机器人
  • 自动回复机器人

    2013-08-07 10:37:45
    qq自动回复
  • QQ自动聊天机器人

    2013-04-03 19:14:12
    QQ自动聊天机器人,完全实现不用人工管理自己的QQ和QQ群,他就是你的好帮手,智能回复,QQ群管理,什么都能做
  • qq回复机器人

    2018-08-18 12:11:20
    安装包安装后,将图灵机器人连入qq,可以实现qq自动回复好友信息
  • 微信自动回复机器人

    千次阅读 2019-07-04 22:04:56
    通过itchat获取微信的相关消息,将微信消息传输到青云客机器人接口,获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。 因为图灵机器人现在需要实名认证,并每天...

    首发于慕课网手记

    通过itchat获取微信的相关消息,将微信消息传输到青云客机器人接口,获取机器人的返回消息。将返回消息返回给微信消息的发送人。以此实现将微信个人号变身为聊天机器人。

    因为图灵机器人现在需要实名认证,并每天免费数量只有100条,感觉非常麻烦,所以找了一个免费的接口-青云客,虽然这个智能程度没有图灵机器人那么高,但是也足够应付基本的消息了,不过有时候有点智障,谨慎使用哈

    以下是接口说明:

    在这里插入图片描述

    安装库

    需要安装以下python库才能够跑起来

    1. itchat
    2. requests

    具体代码

    # -*- coding: utf-8 -*-
    # @Time    : 2019/7/3 14:23
    # @Author  : donlex
    # @Email   : donlex@qq.com
    # @Software: PyCharm 2018.1.4 (Professional Edition)
    import itchat
    import requests
    
    def get_response(msg):
        apiUrl = 'http://api.qingyunke.com/api.php?key=free&appid=0&msg={}'.format(
            msg)
        # 发送post请求
        r = requests.post(apiUrl).json()
        # 替换br字符串
        response = r.get('content').replace('{br}', '\n')
        return response
    
    # 用于接收来自朋友间的对话消息
    # 如果不用这个,朋友发的消息便不会自动回复
    @itchat.msg_register(itchat.content.TEXT)
    def print_content(msg):
        return get_response(msg['Text'])
    
    
    if __name__ == '__main__':
        itchat.auto_login(True) #保存登录信息,下次不用扫码
        itchat.run()
    

    详细解释

    itchat.auto_login()是将会通过微信扫描二维码登录,但是这种登录的方式确实短时间的登录,并不会保留登录的状态,也就是下次登录时还是需要扫描二维码。

    另外,扫码登录是通过网页版微信登陆,因为新注册的微信账号可能不支持网页版功能,所以最好是在使用之前,先验证下能够登录网页版微信。

    其他机器人

    展开全文
  • 逆向分析QQ消息自动回复机器人设计

    千次阅读 2018-04-04 19:49:27
    首先将取一个android手机QQ应用的一个版本取apk到电脑,使用jadx-gui或者任意的反编译软件进行反编译,拿到反编译后的代码这是准备阶段。 首先需要取到QQ内使用的Context上下文信息,这个步奏通常是反编译一个应用...

        首先将取一个android手机QQ应用的一个版本取apk到电脑,使用jadx-gui或者任意的反编译软件进行反编译,拿到反编译后的代码这是准备阶段。

        首先需要取到QQ内使用的Context上下文信息,这个步奏通常是反编译一个应用进行二次开发的第一步奏,我定位到了如下包中的一个类:“xxx.xxx.xxx.xxx.InjectUtils”能够分析定位到一个名字为injectExtraDexes的方法,在这个方法中能够Hook到application信息,QQ源码如下:

        public static synchronized String injectExtraDexes(Application application, boolean z) {
            String injectExtraDexesOat;
            synchronized (InjectUtils.class) {
                if (QLog.isColorLevel()) {
                    QLog.i(TAG, 2, "Runtime : " + (isRuntimeART() ? "ART" : "Dalvik") + " ; sdk :" + VERSION.SDK_INT);
                }
                try {
                    if (VERSION.SDK_INT >= 21) {
                        injectExtraDexesOat = injectExtraDexesOat(application, z);
                    } else {
                        injectExtraDexesOat = injectExtraDexManual(application, z);
                    }
                } catch (Throwable th) {
                    QLog.e(TAG, 1, "", th);
                    injectExtraDexesOat = null;
                }
            }
            return injectExtraDexesOat;
        }

        当我们能够取到application的时候自然能够获取到QQ应用的包信息以及版本信息,就可以在代码中进行版本的适配,同时可以获取到父类的ClassLoader方便后续的Hook操作,本博客针对的是QQ 6.7.0v的一个能在网上找到的较为老的一个版本,可以更为方便的做代码分析样例来使用。新版本的QQ不清楚是否在技术层面支持了Xposed框架的检测以及各项功能接口代码的保护,还有可能对非正常人为的报错异常信息进行上传而封号的处理。

        之后通过定位查找关键字,查找对应消息页面的反编译代码定位到一个叫做MessageHandlerUtils的工具类,相关代码如下:

        public static boolean a(QQAppInterface qQAppInterface, MessageRecord messageRecord, boolean z) {
            if (messageRecord == null || (messageRecord.msg == null && messageRecord.msgData == null)) {
                if (QLog.isColorLevel()) {
                    QLog.w("Q.msg.MessageHandlerUtils", 2, "---------------msgFilter message [before filter] is null !");
                }
                return true;
            }
            StringBuilder stringBuilder;
            long currentTimeMillis = System.currentTimeMillis();
            if (QLog.isColorLevel()) {
                StringBuilder stringBuilder2 = new StringBuilder(256);
                stringBuilder2.append("---------------msgFilter istroop: ").append(messageRecord.istroop).append(" shmsgseq: ").append(messageRecord.shmsgseq).append(" friendUin: ").append(messageRecord.frienduin).append(" senderUin: ").append(messageRecord.senderuin).append(" msgType: ").append(messageRecord.msgtype).append(" time:").append(messageRecord.time).append(" msgContent: ").append(messageRecord.getLogColorContent()).append(" isNormalMsg: ").append(z);
                stringBuilder = stringBuilder2;
            } else {
                stringBuilder = null;
            }
            List<MessageRecord> b = qQAppInterface.a().b(messageRecord.frienduin, messageRecord.istroop);
            if (messageRecord.istroop == 1 || messageRecord.istroop == 1026 || messageRecord.istroop == 3000) {
                if (b != null && b.size() > 0) {
                    for (MessageRecord a : b) {
                        if (MsgProxyUtils.a(a, messageRecord, false, z)) {
                            if (QLog.isColorLevel() && stringBuilder != null) {
                                stringBuilder.append(" filterType: troop msg isNormalMsg=" + z);
                                QLog.w("Q.msg.MessageHandlerUtils", 2, stringBuilder.toString());
                            }
                            MsgAutoMonitorUtil.a().h(System.currentTimeMillis() - currentTimeMillis);
                            return true;
                        }
                    }
                }
                if (qQAppInterface.a().f(messageRecord)) {
                    return true;
                }
            } else if (MsgProxyUtils.c(messageRecord.istroop)) {
                if (b != null && b.size() > 0) {
                    for (MessageRecord a2 : b) {
                        if (MsgProxyUtils.a(a2, messageRecord, z)) {
                            if (QLog.isColorLevel() && stringBuilder != null) {
                                stringBuilder.append(" filterType: " + messageRecord.istroop);
                                QLog.w("Q.msg.MessageHandlerUtils", 2, stringBuilder.toString());
                            }
                            MsgAutoMonitorUtil.a().h(System.currentTimeMillis() - currentTimeMillis);
                            return true;
                        }
                    }
                }
                if (qQAppInterface.a().f(messageRecord)) {
                    return true;
                }
            } else if (messageRecord.istroop == 7220) {
                if (b != null && b.size() > 0) {
                    for (MessageRecord a22 : b) {
                        if (MsgProxyUtils.a(a22, messageRecord, true)) {
                            if (QLog.isColorLevel() && stringBuilder != null) {
                                stringBuilder.append(" filterType: other");
                                QLog.w("Q.msg.MessageHandlerUtils", 2, stringBuilder.toString());
                            }
                            MsgAutoMonitorUtil.a().h(System.currentTimeMillis() - currentTimeMillis);
                            return true;
                        }
                    }
                }
            } else if (b != null && b.size() > 0) {
                for (MessageRecord a222 : b) {
                    if (a222.time == messageRecord.time && a222.msg.equals(messageRecord.msg)) {
                        if (QLog.isColorLevel() && stringBuilder != null) {
                            stringBuilder.append(" filterType: other");
                            QLog.w("Q.msg.MessageHandlerUtils", 2, stringBuilder.toString());
                        }
                        MsgAutoMonitorUtil.a().h(System.currentTimeMillis() - currentTimeMillis);
                        return true;
                    }
                }
            }
            if (QLog.isColorLevel() && stringBuilder != null) {
                QLog.d("Q.msg.MessageHandlerUtils", 2, stringBuilder.toString());
            }
            MsgAutoMonitorUtil.a().h(System.currentTimeMillis() - currentTimeMillis);
            return false;
        }
    

        在这个方法中就可以很轻易的拿到传到这个方法的参数信息,然后再根据getObjectField的方法拿到该对象的实例,我不知道该不该这样理解或是这样子表达,然后再上诉的QQ反编译的代码中,能够看到这个方法参数的实例MessageRecord.istroop/.friendui/.msg等等的信息,这样你单独在这里先停止下面的代码分析和处理,在这里单独的对上述得到的信息打Log,在控制台看看你到底得到的信息是什么,测试一下在往下分析也来得及。

        经过log验证,你会发现你在QQ中接收到的消息就是 msg 其它的分别是qq号,群判断等...这些东西都能够在QQ的数据库中存储,你可以将QQ的数据库拿出来没用可视化工具查看QQ的数据库结构信息,分析消息部分每个字段代表的具体含义,但是我不清楚QQ数据库有没有KEY,微信数据库是有KEY的,但是能够通过Hook的方式拿到KEY,我想即便有密码也大同小异,我记得微信数据库密码是两个字段分别进行MD5和某一种加密方式的拼接在取其前几位的字段,这步掠过也可以的,因为这些东西是进行设置QQ机器人的各项回复依据,例如群消息不回复等...

        然后你能够拿到好友对你发送的消息了,能够拿到这条消息的对应各项参数信息了,那你就能能够进行验证分析是否跟你本地配置的文件是否匹配,这决定了是否进行回复和回复那些消息内容甚至可以延时多少时间进行回复等操作...当然Hook的代码是依附于QQ的源码的,类似于一个病毒细菌一样,嵌入在了QQ的体内,所以的配置的东西在QQ内是无法获取的,不知道你们能不能明白,举个例子,你写的一个APP是Demo1,那么你写的本地界面设置的参数信息保存是保存在你Demo1的进程中,保存在了你Demo1对应的内容提供者的路径文件夹下,那么你无权去访问QQ的数据库SP它的进程。我不知道这样的比喻是否恰当但是却是常识性的东西,那么该怎么办?开始初学的时候我确实煞费苦心,但是其实Xposed框架早就准备了这样的一个共享的SP文件用来存储小量信息,我简称为XSP(XSharedPreferences),这篇博客主要讲解干货原理分析,所以设置本地的配置就不写了,先写死的东西,比如我用我的大号进行测试,然后小号给大号发送消息会自动回复,回复特别内容会回复特别的内容。

        然后下面会遇到一个问题是如何查找到send发送消息的接口?我的办法是哪一步实行的发送动作,将消息发送出去了,就从哪里入手查找发送的功能代码,最后定位到了ChatActiviryFacade类,查找到了一个类似于发送消息的方法:

        public static long[] a(QQAppInterface qQAppInterface, Context context, SessionInfo sessionInfo, String str, ArrayList arrayList, SendMsgParams sendMsgParams) {
            if (QLog.isColorLevel()) {
                QLog.d("SendMsgBtn", 2, " sendMessage start currenttime:" + System.currentTimeMillis());
            }
            if (str == null || str.length() == 0 || sendMsgParams == null || sessionInfo == null || TextUtils.isEmpty(sessionInfo.f1386a)) {
                return null;
            }
            long[] a = a(qQAppInterface, sessionInfo, str, arrayList, sendMsgParams);
            ThreadManager.a(new ljr(sendMsgParams, qQAppInterface, sessionInfo), 8, null, true);
            if (!QLog.isColorLevel()) {
                return a;
            }
            QLog.d("SendMsgBtn", 2, " sendMessage end currenttime:" + System.currentTimeMillis());
            return a;
        }
    

        整个类反编译后有4000多行的代码,你如何分析查找到关键处,是尤为重要的,我也只是一枚渣渣只能够凭借感觉和关键字还有一些运气成分去碰几个好像还挺像那么回事的代码片儿,然后用Hook去取这个方法的参数或是返回值去验证是否判断正确,有时候你hook不到信息,很有可能是你没有拿到一个正确的Context上下文对象,而如何能找到对应的Context也显得尤为重要。

        那么你找到了关键的发送方法了,那么之后呢?当然是寻找对应参数的实例,然后使用callStaticMethod方法调用此方法,就能够将消息发送出去啦~到这里可以松一口气了,因为之前的代码大多是试探,或是根据自己的感觉,在或者根据页面的对应相关逻辑分析查找关键字,来一步一步的分析定位,或者发现这是一条死胡同,就赶紧撤回继续去找,很费时间也有一些看运气的成分,毕竟这是大厂的APP由几十人共同研发而成的代码,想一想把他攻克下来也是很有自豪感和成就感的,那好像就能松口气继续研究下去了。

        回归正传查找定位这几个参数的实例的过程这里就省略了,直接上最后的Xposed代码,首先新建工程将Xposed的jar包以及准备工作完成,我再之前的博客里总结的基础的准备阶段,这里不明白的可以找我之前的博客,网上查也会查到一堆这里也不过多的详述了:

            findAndHookMethod(InjectUtils, loadPackageParam.classLoader, "injectExtraDexes",
                    Application.class, boolean.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
                            final Application application = (Application) param.args[0];
                            PackageInfo packageInfo = application.getPackageManager().getPackageInfo(application.getPackageName(), 0);
                            String QqVersion = packageInfo.versionName;
                            Log.e("HookQQ", QqVersion);
                            Common.initVersion(QqVersion);
    
                            MessageUtil messageUtil = new MessageUtil(application.getClassLoader(), application);
                            messageUtil.initAutoReply();
                        }
                    });

        这部分是hook的主入口,之前会进行各程序进程包的剔除,寻找关键部分,然后进入到MessageUtils消息处理工具类中:

        public void initAutoReply() {
            sApplication = callStaticMethod(findClass(BaseApplicationImpl, classLoader), "getApplication");
            findAndHookMethod(MessageHandlerUtils, classLoader, "a",
                    QQAppInterface,
                    MessageRecord,
                    boolean.class, new XC_MethodHook() {
                        @Override
                        protected void afterHookedMethod(MethodHookParam param) throws Throwable {
    
    //                        if (!XPreferenceUtil.getMasterSwitch()) return;
    
                            final String frienduin = getObjectField(param.args[1], "frienduin").toString();
                            final String selfuin = getObjectField(param.args[1], "selfuin").toString();
                            final String senderuin = getObjectField(param.args[1], "senderuin").toString();
                            final int istroop = (int) getObjectField(param.args[1], "istroop");
                            final String msg = getObjectField(param.args[1], "msg").toString();
                            boolean isread = (boolean) getObjectField(param.args[1], "isread");
    
                            Log.e("HookQQ","frienduin---" + frienduin);
                            Log.e("HookQQ","selfuin---" + selfuin);
                            Log.e("HookQQ","senderuin---" + senderuin);
    
    //                        String[] whiteList = XPreferenceUtil.getWhiteList();
                            // 白名单 好友列表的数组 先写死
                            // 查询内容为 qq号 !
                            String[] whiteList = {"xxx","xxx","xxx"};
    
                            if (whiteList.length != 0 && !senderuin.equals(selfuin)) {
    //                            if (XPreferenceUtil.getNoReplyTroop() && istroop == 1) return;
                                // 上面是群消息不接收与回复
                                if(istroop == 1)return;
                                iteratorWhiteList(frienduin, selfuin, msg, senderuin, istroop, isread, whiteList);
                            }
                        }
                    });
        }
        执行发送白名单的方法为iteratorWhiteList执行对字符串拆分然后遍历取相关信息与设置的白名单信息做比较,匹配后进入send方法:
        private void iteratorWhiteList(String frienduin, String selfuin, String msg, String senderuin, int istroop, boolean isread, String[] list) {
            for (String s : list) {
                if (frienduin.equals(s) && !isread && !frienduin.equals(selfuin)) {
                    Log.e("HookQQ", "iteratorWhiteList is running...");
                    ArrayList<Map<String, String>> keyReply = getKeyReply();
                    if (keyReply != null && keyReply.size() != 0) {
                        for (Map<String, String> stringMap: keyReply){
                            if (stringMap.get("content").trim().equals(msg)) {
                                send(frienduin, selfuin, istroop, stringMap.get("reply_content"));
                                return;
                            }
                        }
                    }
    
                    send(frienduin, selfuin, istroop, "统一回复!!!");
                }
            }
        }

        发送send方法如下:

        private void send(String frienduin, String selfuin, int istroop, String s) {
            Object qqAppInterface = callMethod(sApplication, "getAppRuntime", selfuin);
            Object sessionInfo = newInstance(findClass(SessionInfo, classLoader));
            Object sendMsgParams = newInstance(findClass(SendMsgParams, classLoader));
            // 嗯 很暴躁!
            XposedUtil.setField(sessionInfo, "a", frienduin, String.class);
            XposedUtil.setField(sessionInfo, "a", istroop, int.class);
            callStaticMethod(XposedHelpers.findClass(ChatActivityFacade, classLoader), "a",
            qqAppInterface, mContext, sessionInfo, s, new ArrayList<>(), sendMsgParams);
        }

        以上的代码只是部分,只是以分析和逻辑处理代码的分享,Hook的QQ具体包名类名,更多的都没有给出,然后接下来是测试验证好使的截图(回复谁的消息,关键字匹配回复等都是写死的,之前已经说过了,这里可以写的更为灵活,可以用socket或是Http去请求后台,在后台进行更为详细的判断之后再返回给前端具体的消息,后台也可以根据需求绑定图灵机器人的相关API接口,在回调给前台这样...反正随便你设计...最好的最灵活的方式肯定是这样了):



    点个赞评论下呗~么么哒~

    展开全文
  • 大家好我又来了,我是今天这个教程的讲师:万花,我们今天给大家带来的干货是用易语言开发一款QQ自动回复机器人!原理也很简单,大家看上面的原理图就大概有个了解了。 不废话我们打开易语言,然后简单的设置...
  • 牛X QQ自动回复 聊天机器人3.6正式版
  • 小黄鸡QQ空间自动回复机器人

    千次阅读 2015-05-20 01:34:45
    "小贱鸡QQ空间自动回复" ,   "version" :  "1.1" ,    "background" : {  "scripts" : [ "jquery.min.js" , "background.js" ] },   "content_scripts" : [   {   ...
  • 手把手教大家快速构建自动回复机器人 聊天机器人可以说在我们生活中的应用非常普遍了。 它们依托于互联网资源,回答用户的日常问题,或者主动提醒和推荐。比如,苹果的Siri,微软的Cortana这种的语音机器人,又或者...
  • QQ机器人第10代QQ自动管理机器人是基于QQ2014正式版协议开发的一款QQ机器人,拥有QQ常用的功能,首款支持发送图片的机器人(PC版协议),拥有完善的插件机制,使用SkinSharp换肤组件,可以自由的变换界面。
  • 微信扫码登录后,好友回复TEXT文本 关键词自动回复对应内容,支持订阅和退订,可以查天气、查快递,好友发送图片、视频、语音等自动存储在本机,好友发送位置信息自动返回位置信息。注:这个机器人没有调用其他...
  • qq自动聊天机器人 可以群聊 有哈偶偶功能 可以管理群 还可以踢人 自动回复 增加群 气氛
  • /*本来QQ可以使用qqbot,...自动回复需要先去图灵机器人官网申请一个机器人,获得api_key,才可以使用 from itchat.content import * import requests import simplejson as json import itchat as wx def tuli...
  • 通过flask、urllib、xlrd等库构造一个微信公众号的自动回复机器人,对接图灵机器人。 详细情况见如下: https://mp.weixin.qq.com/s?__biz=MzI3MjM0MDM3Mg==&mid=2247483787&idx=1&sn=df52d12501c...
  • Auto.js Pro基于节点操作,能开发全分辨率的脚本,自动适配各种安卓机型 Auto.js Pro丰富的UI组件,能自定义各种样式的安卓界面 Auto.js Pro使用的javascript的语法比较优雅,代码可读性强 Auto.js Pro的命令...
  • 自动回复聊天机器人

    2017-04-20 15:24:05
    能够根据用户发送的消息,自动回复
  • 大家好,又来到Python办公自动化专题。在之前的系列文章中,我们已经讲解了如何利用Python读取、收发、管理邮件。本文将进一步分享如何用Python制作一个邮件自动回复机器人。比如当发...
  • QQ 大爱迪生 无数人啊大擦案发士大夫发财 QQ自动聊天机器人 可以自己回复 也可以骚扰别人!!!!! 大方的士大夫 十分大方是非师范 安抚!!#¥
  • 自动填充xml $resultStr = sprintf ( $Tpl , $fromUsername , $toUsername , $time , $sendType , $contentStr ); // 回复 echo $resultStr ; } // 用户没有请求 else { echo "" ; exit...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,235
精华内容 894
关键字:

qq自动回复机器人