道无涯自用Telegram机器人框架接口文档

关于本项目

  • 由道无涯i开发的一个基于 Lsposed(Non-Riru) 实现的Telegram机器人框架
  • 目前并没有对外开放,毕竟机器人框架这种东西比较容易火,容易被黑灰产非法利用
  • 接口文档已趋于完善,机器人框架正式开发完毕

如果你想拥有一个这样的机器人,但困于编程知识储备不足,可联系 道无涯 按需定制,具体可移步 软件|源码定制

Telegram交流群

待定,暂时没想好搞来干啥。

请求与响应

目前支持 GET 和 POST 两种请求方式

GET 请求

GET 请求的 URL 由以下部分组成:
http://<host>:<port>/<endpoint>?<params>

链接中的含义如下:

  • <host>:IP 地址,例 127.0.0.1
  • <port>:API 端口,默认为 5704
  • <endpoint>:API 端点,例 send_text_msg
  • <params>:GET 请求的参数,例 param1=value1&param2=value2

POST 请求

POST 请求的 URL 由以下部分组成:
http://<host>:<port>/<endpoint>

链接中的含义如下:

  • <host>:IP 地址,例 127.0.0.1
  • <port>:API 端口,默认为 5704
  • <endpoint>:API 端点,例 send_text_msg
  • POST请求的Content-type为application/json
{
    "tgid": "111111",
    "text": "你好,道无涯!"
}

响应

响应格式为 JSON

如果下面的接口是获取值的,那么返回值会放在message字段里,没有返回值则返回常规提示性的字符串

{
    "result": "success", // 状态,success 为成功,error为失败
    "message": "文本消息发送成功!", // 返回结果示例
}

消息上报

上报时,插件将作为客户端,对接端作为服务器,插件向对接端发起POST请求进行数据传输

  • 上报方式(method): POST
  • 上报链接(url): http://ip:port/tgBot,ip和port为对接端的
  • 上报体(body):所有上报必定包含字段post_type

用这个post_type的值去区分各种事件与消息的上报类型,目前设定的post_type值仅1种:

post_type 说明
message 消息事件

message(消息事件)

  • post_type为message时代表是消息事件
  • 消息事件又以字段message_type作为区分,值分别有:
message_type 说明
channel 频道消息
group 群组消息
chat 群聊消息
private 私聊消息
channel(频道消息)

频道消息字段包含四种:

字段 说明
channelId 频道ID
channelName 频道名称
content 消息内容
imagePath 消息图片缓存的路径

如果是多篇文章的话,默认只发送第一篇文章的数据

group(群组消息)

群组消息字段包含六种:

字段 说明
groupId 群组ID
groupName 群组名称
userId 发送者ID
userName 发送者昵称
content 消息内容
imagePath 消息图片缓存的路径
chat(群聊消息)

群聊消息字段包含五种:

字段 说明
chatId 群聊ID
chatName 群聊名称
userId 发送者ID
userName 发送者昵称
content 消息内容
private(私聊消息)

私聊消息字段包含三种:

字段 说明
userId 发送者ID
userName 发送者昵称
content 消息内容

消息相关接口

发送文本消息

该接口用于发送文本消息。

API 端点(POST

/send_text_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
text string 消息内容

发送图片消息

该接口用于发送图片消息。

API 端点(POST

/send_image_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
image string 图片,可以是本地路径或者是url链接,如果是url则默认以jpg格式发送
withtext string 发图携带的文本,不携带可设置值 null""

发送视频消息

该接口用于发送视频消息。

API 端点(POST

/send_video_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
video string 视频,可以是本地路径或者是url链接,如果是url则默认以mp4格式发送
withtext string 发视频携带的文本,不携带可设置值 null""

发送动图消息

该接口用于发送GIF动图消息。

API 端点(POST

/send_gif_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
gif string GIF动图,可以是本地路径或者是url链接
withtext string 发动图携带的文本,不携带可设置值 null""

发送文件消息

该接口用于发送文件消息。

API 端点(POST

/send_file_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
file string 任意类型文件,可以是本地路径或者是url链接
withtext string 发文件携带的文本,不携带可设置值 null""
ext string 文件后缀,例如.js.txt,当file为本地路径时可设置值 null""

发送语音消息

该接口用于发送语音消息。

API 端点(POST

/send_voice_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
voice string 语音文件,可以是本地路径或者是url链接,必须为*.ogg或者*.wav类型文件
withtext string 发文件携带的文本,不携带可设置值 null""

发送富文本消息

该接口用于发送富文本消息,消息可同时包含:文本、图片、超链接

API 端点(POST

/send_rich_msg

参数
字段 类型 必须 说明
tgid string Telegram ID
text string 消息内容
linkTexts string [] 超链接文本数组
links string [] 链接数组
images string [] 图片数组,可以是本地路径或者是url链接,如果是url则默认以jpg格式发送,如果不想携带图片可传入空数组[]

HOOK自带的几大功能

机器人框架

  • 上述列出的所有API接口服务
  • 自动上报消息至服务器

聊天记录爬取

  • 顾名思义,用来爬取聊天记录并缓存至本地,支持图+文+链接
  • 缓存文件地址:/data/data/org.telegram.messenger/files/spyder.txt
  • 实测5分钟内即可爬6500多条记录
  • 触发方式:在任意聊天界面发送 爬#tgid 即可触发(tgid需要替换真实成ID),每爬200条触发一次toast提示

消息防删除

  • 即使对方把聊天消息删除了,也能看得到
  • 原理是阻止Telegram删除本地消息

tgid的获取

  • 在聊天列表长按某个聊天消息即可触发toast输出和复制该消息的tgid
  • 在聊天页面输入并发送tgid即可触发toast输出和复制该对话的tgid(消息会被拦截不会发过去)

结语

  • 老早就想做一个Telegram相关的Hook机器人了,终于给加上了
  • 目前接口不多,但是足够用了,暂时想不到其它啥接口,等后续用到了再开发新的其它接口

作 者:道无涯
来 源:道无涯博客
链 接: https://www.daowuya.love/tgbot/
版 权 声 明:本博客所有文章除特别声明外,均采用CC BY-NC-SA 4.0许可协议。文章版权归作者所有,未经允许请勿转载!


暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇