其他分享
首页 > 其他分享> > Auto.js微信自动回复机器人(微信v8版本)

Auto.js微信自动回复机器人(微信v8版本)

作者:互联网

一、前言

  1. 整体思路
    1)找到头像右上角有消息标志的聊天(注意直接跑下面代码的时候请确保聊天界面有此前提
    2)点击进入聊天窗口,找到所有消息
    3)取最后一个消息(最新消息)
    4)和之前的新消息对比是否发生变化
    5)新消息推送至API
    6)收到API消息发送

  2. 微信v8版本发送消息时,不再显示“发送”按钮了,也就没办法用找到“发送”控件的方法实现发送消息了。

  3. 尝试用KeyCode(code)方式,发送回车键,发现也无效,原因查了一下好像是需要ROOT还是安卓9以上此方法失效。

  4. 于是用坐标点击的方式点击键盘上的“发送”(回车键),先找到聊天界面加号的位置(右下角),出现键盘后此位置为“发送”按键位置。

    var location = id(“au0”).findOne().bounds();
    click(location.centerX(), location.centerY());

  5. 智能聊天机器人使用的是青云客API,无需登陆直接调用。
    http://api.qingyunke.com/

  6. 官方文档
    https://hyb1996.github.io/AutoJs-Docs/#/

  7. 运行环境版本
    1) Auto.js版本V4.1.1 Alpha2
    2)微信版本V8.0.16
    3)手机系统版本鸿蒙2.0.0

  8. 微信版本更新,导致控件id变了,需要用Auto.js重新抓取控件id,在下面代码中替换即可。更新于2022.2.8

二、代码

auto.waitFor()

console.show();
log("微信自动聊天机器人")
id("f67").waitFor()//等有收到新消息
toast("程序开始")
id("f67").findOne().children().forEach(child => {
    var target = child.findOne(id("iot"));
    if (target) {
        child.click();
        var name = child.findOne(id("fzg"));
        log("进入*" + name.text() + "*聊天对话")
        sleep(1000);
        
        var input_text = className("EditText").findOne();
        var location = id("au0").findOne().bounds();
        var last_msg = "初始化";
        input_text.click();
        while (true) {
            var all_msg = id("auk").find()
            if (all_msg.length > 0) {
                var new_msg = all_msg[all_msg.length - 1].text();
                log("新消息*" + new_msg + "*");
                if (last_msg != new_msg) {                
                    var res = http.get("http://api.qingyunke.com/api.php?key=free&appid=0&msg=" + new_msg);
                    if (res.statusCode != 200) {
                        log("请求失败: " + res.statusCode + " " + res.statusMessage);
                        last_msg = "初始化";
                    } else {
                        var r_msg = res.body.json();
	                    input_text.setText(r_msg.content);
	                    if (click(location.centerX(), location.centerY())) {
	                        log("消息发送成功")
	                    }
						last_msg = new_msg;
					}
                    sleep(2000);
                }
            } else {
                log("未找到聊天消息")
            }

        }
    }
});

exit();

三、效果

关注了小冰AI托管,和她自动互聊。
和小冰互聊

标签:findOne,微信,js,var,location,Auto,msg,id
来源: https://blog.csdn.net/web13765607643/article/details/123079420