告别复杂配置!密码下载+多平台机器人,一键搞定

前言

这是一个用于WordPress的附件密码下载,对接公众号 提供API 方便其他程序调用 支持多平台机器人 如 QQ官方机器人 TG机器人等 密码随机生成,支持ai大模型。程序永久免费且开源 开源地址 https://github.com/naigoucn/ngdown 前台下载样式参考 6KE论坛的子比下载插件 微信机器人参考http://github.com/wangvsa/wechat-robothttps://github.com/shiheme/wechat-robot-guoqing 图标样式采用开源icon库 remixicon 不对接公众号的版本 下载地址 https://www.123684.com/s/uXJuVv-mN4U3

支持功能

  • 输入密码下载附件
  • 对接微信公众号随机密码
  • 公众号推送文章
  • 单篇文章密码30分钟自动切换
  • 对接AI大模型实现自动聊天
  • 提供api接口 方便其他机器人框架调用
  • 支持多平台机器人 如QQ/TG等 (取决于您的机器人框架)
  • 后台设置页面 自定义回复设置 大模型设置 api密钥设置
  • 自动识别网盘链接展示对应图标
  • 支持选择开启或关闭密码下载

演示图

使用方法

文章页

新建文章后,如果想在文章底部加上密码下载就在编辑器底部找到下图设置

填写对应内容即可,选项留空前台不显示该内容,显示选项 选择隐藏前台也不显示该内容。

对接微信公众号

在这里输入你的微信公众号 开发者ID(AppID)开发者密码(AppSecret)

如何获取开发者ID(AppID)开发者密码(AppSecret)

登录微信公众号平台 mp.weixin.qq.com 登录账号 找到 设置与开发 点击 开发接口管理 如下图

复制appid粘贴到上面的位置,密钥点击重置,扫码后重新获取 记得把服务器ip设置为IP白名单。

服务器地址改为 https://你的域名/?wechat token填写wechat 消息加解密方式选择明文模式。

对接AI大模型

后台找到微信机器人 AI模型 按要求填写

这个适配的是openai的,大部分大模型都支持,所以改接口 改密钥 改模型代码 理论支持所有大模型,例如腾讯混元 阿里通义千问 DeepSeek等。 预装了部分ai大模型 如通义千问 腾讯混元 deepseek kimi 模型记得选择正确 不然会失败。

API秘钥

插件提供api用来获取密码 采用post形式 API Token按你需要的设置。

接口请求方式

api_token就是你设置的token postid就是你开启密码下载的文章

URL: https://域名/wp-json/ngapi/v1/get-password
Method: POST 
Headers: Content-Type: application/json
Body (JSON):
{
    "api_token": "your_api_token_here",
    "postid": your_post_id_here
}

对接其他机器人

QQ机器人

我使用的是 AstrBot 机器人框架 对接的QQ官方机器人 AstrBot安装教程 和使用教程 这里就不赘述 需要的请自行前往仓库获取。

插件代码及仓库地址

https://github.com/naigoucn/astrbot_plugin_ngdown

from astrbot.api.event import filter, AstrMessageEvent, MessageEventResult
from astrbot.api.star import Context, Star, register
from astrbot.api import logger
import requests

@register("article_password", "奶狗", "奶狗WordPress文章密码下载插件", "1.0.0", "repo url")
class ArticlePasswordPlugin(Star):
    def __init__(self, context: Context):
        super().__init__(context)
        self.api_token = "966877"  # 在这里配置 API Token
        self.website_url = "https://www.naigou.cn"  # 在这里配置网站 URL后面不要加/
    
    # 注册指令的装饰器。指令名为 文章密码。注册成功后,发送 `/文章密码 xxx` 就会触发这个指令,并回复 密码信息
    @filter.command("文章密码")
    async def article_password(self, event: AstrMessageEvent):
        '''这是一个获取文章密码的指令''' # 这是 handler 的描述,将会被解析方便用户了解插件内容。建议填写。
        user_name = event.get_sender_name()
        message_str = event.message_str.strip() # 用户发的纯文本消息字符串
        
        # 解析命令参数
        parts = message_str.split(maxsplit=1)
        if len(parts) != 2:
            yield event.plain_result(f"格式错误,请使用 `/文章密码 文章ID` 格式。")
            return
        
        command, post_id_str = parts
        
        # 检查 post_id 是否为数字
        if not post_id_str.isdigit():
            yield event.plain_result(f"格式错误,请使用 `/文章密码 文章ID` 格式,文章ID必须是数字。")
            return
        
        post_id = int(post_id_str.strip())
        
        if not post_id:
            yield event.plain_result(f"无效的文章ID,请重新输入。")
            return
        
        # 构建API请求数据
        data = {
            "api_token": self.api_token,
            "postid": post_id
        }
        
        # 调用API获取密码
        api_url = f"{self.website_url}/wp-json/ngapi/v1/get-password"
        try:
            response = requests.post(api_url, json=data)
            response.raise_for_status()
            data = response.json()
            
            # 统一返回 API 返回的消息内容
            message = data["data"].get("message", "未知错误")
            yield event.plain_result(f"{message}")
        
        except requests.exceptions.HTTPError as e:
            logger.error(f"HTTP 错误: {e}")
            try:
                data = response.json()
                message = data["data"].get("message", "未知错误")
            except (ValueError, KeyError):
                message = "无法解析API响应"
            yield event.plain_result(f"{message}")
        except requests.exceptions.RequestException as e:
            logger.error(f"请求API时发生错误: {e}")
            yield event.plain_result(f"请求API时发生错误: {str(e)}")

TG机器人

部分框架提供对接其他平台的功能 参考QQ机器人的对接方式

12
1
文章导航
  • 使用React构建从 App Store 上获取应用图标的项目
  • 家用宽带(动态公网ipv4)+CDN 绕开80和443端口
  • 上一篇使用React构建从 App Store 上获取应用图标的项目
  • 下一篇家用宽带(动态公网ipv4)+CDN 绕开80和443端口