👑
WeChatDocs
  • 😂部分风控说明(必读)
  • 😂搭建环境指南(必读)
  • 🤖❣️Docker❣️
  • 🧿登陆相关API
    • 🧐取二维码
    • 🧐历史登陆
    • 😅重建链接
    • 🧐配置文件登陆
  • 🚨发送各种消息API
    • 🚨发送各种消息API
    • 🤩撤回消息
  • 👭好友操作API
    • 🧍取通讯录
    • 🚶通讯录OP
    • 🧍搜索好友
    • 🧍‍♀️添加好友
    • 🧍‍♀️同意好友
    • 🧍‍♂️删除好友
    • 🧍‍♂️拉黑好友
    • 👬备注好友
    • 👬无痕检测
    • 👬好友资料
  • 🤖群操作相关API
    • 👽创建群聊
    • 👽邀请进群
    • 🥶移除群聊
    • 🥶取群资料
    • 😴退出群聊
    • 😴群二维码
    • 😈自动进群
    • 👅扫码进群
    • 👅群公告设置
    • 🤭群管理设置
    • 🤭群邀请设置
  • ❤️朋友圈操作API
    • 💚获取朋友圈
    • 💜发送朋友圈
    • 🤎操作朋友圈
    • 💓删除朋友圈
    • 💙拉取朋友圈
  • 🎀收藏操作API
  • 🎩同步收藏
  • 🆕添加收藏
  • 🌀删除收藏
  • 🔮收藏详情
  • 🧸收藏信息
  • 💎标签操作API
    • 🟠获取标签
    • 🟠新建标签
    • 🟣删除标签
    • 🟣编辑标签
  • ㊙️授权/小程序/公众号相关API
    • ☺️网页授权
    • ☺️小程序授权
    • 😏获取Session ID
    • 😏JSOperateWxData
    • 🤓授权手机号
    • 🤓搜索公众号
    • 🤓搜索小程序
    • 😆取阅读KEY
  • 🔷CDN相关API
    • 🤠CDN图片
    • 🤠CDN文件
  • 📢表情相关API
    • 🎃添加表情
    • 🎃收藏表情
    • 😸删除表情
    • 😸发送表情
    • 🤩下载表情
  • 😰其他功能API
    • 🏃‍♂️运动步数
    • 🍍取离线列表
    • 🍍取框架信息
    • 🥝验证方式
    • 🍑确认收款
    • 🍎退出登录
  • ☮️SocketIO V3
    • ☮️介绍
    • ☮️正向连接
    • ☮️反向连接
    • 🉑WebSocket
  • 🔔Lua插件开发
    • 🌕介绍
    • 🤖第一个插件--复读机
    • 👻LuaApi
    • 1️Lua--Log模块
    • 2️Lua--Json模块
    • 3️Lua--HTTP模块
    • 4️Lua--MYSQL模块
  • ⌚定时任务
    • 🔉添加定时任务
Powered by GitBook
On this page
  1. Lua插件开发

第一个插件--复读机

在Plugins目录下新建一个lua文件如:reply.lua 推荐用vscode lua插件格式化代码

所有插件必须实现或包含这2个方法ReceiveWeChatMsg 和 ReceiveWeChatEvents

local log = require("log")--导入日志包
local json = require("json")--导入json包
local Api = require("coreApi")--导入API包
local http = require("http")--导入http包
local mysql = require("mysql")--导入mysql
--上述导入包 需要可以导入不需要也可以不导入 上述包都默认集成在框架里 无需安装任何第三方包
--第三方的原生lua包 是不支持的 go实现的lua虚拟机并非是原生
--每个插件必须实现该事件


--CurrentWxid 响应当前消息的机器人Wxid
--data数据结构 详细说明可以参照log.lua这个文件
--[[data.FromUserName,
        data.ToUserName,
        data.MsgType,
        data.Status,
        data.MsgId,
        data.NewMsgId,
        data.Content,
        data.MsgSource,
        data.PushContent,
        data.ActionUserName,
        data.ActionNickName
        ]]
function ReceiveWeChatMsg(CurrentWxid, data)
   if data.FromUserName == CurrentWxid then --如果是机器人自己发送的指令
        ToUserName = data.ToUserName --机器人的ToUserName 将作为回复的对象
    else
        ToUserName = data.FromUserName --他人的FromUserName 将作为回复的对象
    end
    wxid = ""
    if string.find(ToUserName, "@chatroom") then --判断是否是群聊
        wxid = data.ActionUserName --如果是群聊 获取一下发消息者的Wxid
        if wxid == "" then
            wxid = data.FromUserName
        end
    else --私聊
        wxid = data.FromUserName
    end

    if string.find(data.Content, "复读机") then --判断消息中是否包含关键字
        local keyWord = data.Content:gsub("复读机", "")
        --替换复读机为空 提取关键字
        local baseResponse =
            Api.SendMsgNew(CurrentWxid, {ToUserName = ToUserName, MsgType = 1, Content = keyWord, AtUsers = ""})
        --回复关键字
        local str = string.format("baseResponse.Ret %d", baseResponse.Ret)

        log.notice("From replay.lua Log\n%s", str) --打印一下返回值
    end
    return 1 --返回1继续处理后续插件 返回2中断后续插件处理
end
--每个插件必须实现该事件
function ReceiveWeChatEvents(CurrentWxid, data)
    return 1 --返回1继续处理后续插件 返回2中断后续插件处理
end

function Sleep(n)
    --log.notice("==========Sleep==========\n%d", n)
    local t0 = os.clock()
    while os.clock() - t0 <= n do
    end
    --log.notice("==========over Sleep==========\n%d", n)
end
Previous介绍NextLuaApi

Last updated 3 years ago

🔔
🤖