(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

(保姆级教程)通过官方API搭建一个自己的QQ群聊机器人

简介

用官方api做了一个qq群聊机器人的demo,有获取天气、简单编辑待办、从本地发送图片等功能。

建了个群,欢迎来交流(

QQ群号:710101225

重新写了个基于nonebot框架的教程,个人认为比官方sdk更容易开发:https://blog.ZEEKLOG.net/Clovertaa/article/details/145452834

获取

机器人demo

GitHub仓库:GitHub - ClovertaTheTrilobita/SanYeCao-bot: 一个基于官方API的QQ群聊机器人

官方SDK

GitHub仓库:GitHub - tencent-connect/botpy: QQ频道机器人PythonSDK

教程

前置需求

本项目使用conda环境和git操作。如果未安装这两个工具请首先移步

史上最全最详细的Anaconda安装教程-ZEEKLOG博客

Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装-ZEEKLOG博客

(这俩教程我粗略看了下感觉挺好的,如果不适合你那烦请自行百度了qwq)

一、配置QQ开放平台

网址:QQ 开放平台

1.机器人设置

完成注册之后,登陆,进入主页,点击创建机器人

简单填写好资料之后,进入机器人控制面板,找到“沙箱配置”。

点击进入,选择你想在哪个群里测试你的qq机器人。

注意,你必须是该群的群主或者管理员。

在你选择的群聊中,打开群聊设置>群机器人,选择其它,可以看到你创建的机器人。将它邀请进群。

下一步,在导航栏中找到“发布设置”。

点击功能配置。

之后点击右上角的重新配置,设置机器人被at后输入栏上方会弹出的指令。需要根据代码来配置。

以下是我配置的。

最后,在导航栏中找到“开发设置”。

查看你的机器人的AppleID和AppleSecret。由于AppleSecret不会明文保存在网页上,刚创建的机器人需要点击“生成”,并将生成的密钥记录下来,我们在之后的步骤中要用。

注意:生成密钥后退出页面将无法再次查看密钥,所以请妥善记录并保管好。

二、拉取项目

进入GitHub,点击绿色的<>code

之后复制项目仓库链接

之后在自己的文件夹空白处右键,选择open git bash  here

输入

git clone https://github.com/ClovertaTheTrilobita/SanYeCao-bot.git

将项目拉取至本地。

三、启动机器人

很好!现在我们拿到了机器人的源代码,只需要启动它就行了。

请详细阅读项目的README.md根据指引配置API和其它一些东西。

1.配置机器人账号密码

找到./botpy/examples/config.yaml

appid: "Your_Bot_Id" secret: "Enter_Your_Secret_Here"

还记得第一步中我们保存的机器人ID和密钥么?

将你在QQ开放平台上的AppleID和AppleSecret分别填入Your_Id和Enter_Your_Secret_Here的位置。

2.配置图床API

首先打开图床:Image Upload - SM.MS - Simple Free Image Hosting

注册/登陆之后,在右上角找到User

单击,点击DashBoard

在左侧导航栏中找到API Token,如果是第一次使用需要点击Gennerate Secret Token生成令牌。

复制你的令牌,进入项目。

在./botpy/examples/plugins/img_upload.py中,找到

headers = {'Authorization': 'Your_Token'} # 此处填写你的API Token

将上述代码中的Your_Token改为你刚刚复制的令牌。

这样我们就完成了机器人API的配置。

3.配置conda环境(推荐)

接下来,我们回到项目根目录,打开终端,输入

conda create -n chatbot

创建一个名为chatbot的环境,如果你想起别的名字就请把chatbot换为你喜欢的名字。

之后在终端输入

conda activate chatbot

 启动我们刚刚创建的环境。

刚刚创建的conda环境貌似是没有pip安装器的,所以我们要

conda install pip 

安装pip

最后一步,在项目根目录输入

pip install -r requirements.txt

安装所需要的软件包。

requirements.txt内的包可能看起来很多,实际上大部分都是conda环境自带的,我直接把所有的贴上去了,因为懒()

4.启动机器人

非常棒!现在我们已经完成了所有所需要的配置!

我们只需要进入./botpy/examples目录,找到client.py。在终端中输入

python client.py

启动机器人。

现在你就可以在群聊中at它啦。

 

Read more

基于FPGA的CARRY4 抽头延迟链TDC延时仿真

基于FPGA的CARRY4 抽头延迟链TDC延时仿真

基于FPGA的CARRY4 抽头延迟链TDC延时仿真 1 摘要 基于 FPGA 的 CARRY4 抽头延迟链 TDC,核心是利用 Xilinx FPGA 中 CARRY4 进位单元的固定、低抖动级联延迟构建抽头延迟线,通过锁存信号传播位置实现亚纳秒级时间测量,单级进位延迟约 10–30 ps,级联后可覆盖更大时间量程并结合粗计数拓展动态范围。TDC设计利用FPGA的专用进位链硬件,实现了亚纳秒级的时间测量精度,这是传统数字方法无法达到的。虽然需要校准,但其性能优势和数字集成的便利性使其成为高精度时间测量的首选方案。 2 CARRY4 核心结构与抽头延迟链原理 2.1 CARRY4 单元结构(Xilinx 7 系列 / UltraScale) 每个 CARRY4 包含 4 个 MUXCY 进位选择器与 4 个 XORCY 异或门,

Telegram中文生态探索:@letstgbot 中文群组频道搜索机器人的技术解析与开发实践

Telegram中文生态探索:@letstgbot 中文群组频道搜索机器人的技术解析与开发实践

在Telegram(简称TG)这个全球化的即时通讯平台上,中文用户群体日益壮大。然而,由于Telegram官方搜索功能对中文支持有限,许多用户在寻找高质量群组、频道、机器人或贴纸时常常面临“找群难、找资源更难”的痛点。@letstgbot(LetsTG官方搜索机器人)正是针对这一场景诞生的开源友好型中文搜索引擎工具。它通过Telegram Bot机制,为用户提供高效、精准的中文社群发现服务。本文将从技术原理、使用方法、API集成到二次开发实践,全方位解析@letstgbot,帮助开发者与普通用户更好地理解和利用这一工具,同时也分享Telegram Bot开发的通用知识点。 一、Telegram中文搜索的背景与挑战 Telegram作为MTProto协议驱动的开源通讯软件,其生态高度依赖用户自建群组与频道。中文用户主要集中在科技、学习、资源分享、兴趣爱好等领域,但官方搜索仅支持英文关键词的精确匹配,对中文分词、模糊语义的支持较弱。这导致:新手难以快速发现优质中文社群;群管理员难以有效推广自己的群组/频道;开发者难以构建智能化的社群推荐系统。 LetsTG平台(官网letstg.c

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 bavard 的鸿蒙化适配指南 - 实现语义化的聊天消息协议、支持机器人自动回复逻辑与分布式通讯元数据封装 前言 在进行 Flutter for OpenHarmony 的社交或客户支持类应用开发时,除了核心的 WebSocket 传输,如何规范化定义“消息(Message)”的数据结构以及处理复杂的对话逻辑状态,往往决定了项目的后期维护性。bavard 是一个专为高度语义化聊天交互设计的协议封装库。它能让你在鸿蒙端以极具逻辑感的对象模型来驱动对话流。本文将带大家了解如何利用 bavard 构建标准化的聊天架构。 一、原理解析 / 概念介绍 1.1 基础原理 bavard 将一次对话拆解为“参与者(Participants)”、“话题(Topics)”和“原子消息(Discrete Messages)”。它提供了一套完整的状态机,用于驱动从“

XCTF-Web新手区刷题-WriteUp

XCTF-Web新手区刷题-WriteUp

前言 本文章主要是博主刷的题目+题解,供参考:) view_source-(★) 跳转主页后直接F12查看源码发现注释的部分就是flag。 get_post-(★) 获取场景F12进入开发者模式进去HackBar功能(Google商店的扩展插件) 在url给网址添加上要求的Get请求,然后点击Execute执行 再点击 Use POST method 写入对应的Post要求然后执行 flag就出来了。 robots-(★) 打开靶机地址,发现什么都没有,F12发现flag也不在,此题需要使用robots协议的知识 robots 协议(robots.txt)是一种网站用来告知搜索引擎哪些页面或路径可以抓取、哪些不应抓取的约定规则。但是,这个robots协议不是防火墙,也没有强制执行力,搜索引擎完全可以忽视robots.txt文件去抓取网页的快照。 我们访问robots.txt,发现了一个不让访问的地址,但是我们可以访问到, 所以我们接着访问 最后发现flag就在这里。 backup-(★) 发现需要寻找备份文件,然后我们这里使用kali里面