全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1640|回复: 7

TG bot api

[复制链接]
发表于 2021-2-8 03:01:11 | 显示全部楼层 |阅读模式
本帖最后由 hjvn2211445 于 2021-2-8 11:44 编辑

看见最近好几篇关于TG bot推送的帖子,之前简单了解过,自己琢磨官方文档就能明白大半了 https://core.telegram.org/bots/api,本帖只适合小白。
打不开?试试 https://pp.us-south.cf.appdomain.cloud/

回顾:
先是有人发了这个,不知为何杠了起来,说不开源了
这个简单来说用的是楼主机器人,通过分配token,给不同的用户推送消息,同时解决推送过墙的问题

【TG酱】 一个telegram提醒机器人- https://www.hostloc.com/thread-805263-2-1.html
--------------------------------------------------------------------------------

之后有人发了这个,基本就是上面那个的源码,
这个简单来说用的是用自己机器人,同时解决推送过墙的问题

基于 vercel 的 TG消息机器人,【TG SERVER酱】- https://www.hostloc.com/thread-805478-1-1.html
-----------------------------------------------

后面有两个更简单的,基本上是相同的,workers反代官方bot api

利用cf workers 饭袋tg api,实现webhooks推送- https://www.hostloc.com/thread-805471-1-1.html
分享个以前找到的一个CF_worker反代TG_BOT_API的脚本- https://www.hostloc.com/thread-805441-1-1.html



下面说说自己琢磨的

server酱为什么火?最主要是微信api不是每个人都可以申请,所以想推送信息到微信就需要用到它
TG不一样,api开放,bot的ap也i很简单。(另外账号api和bot api功能和使用好像不一样,这里只说bot)

1.TG bot申请无门槛,https://t.me/BotFather 申请就是了

2.TG bot的api很简单
● 官方提供的api地址:https://api.telegram.org
● 使用方法:
  1. https://api.telegram.org/bot<token>/METHOD_NAME
复制代码

        bot<token>申请bot时生成,
        METHOD_NAME 参数很多,推送常用的是几个sendXxxx的,如sendMessage、sendPhoto、sendVideo、sendMediaGroup、sendDocument
● 请求方式:post/get都可以

举个最简单的例子,我创建了一个bot名字叫
@push2tgbottoken为1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE,我怎么用bot给我自己发消息呢?

先去 @push2tgbot 创建对话,然后通过getUpdates的方法获取到你发给bot的对话信息,简单做法浏览器访问下面这个链接就能获得chat_id,用户对话的chat_id一般就是userid
  1. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/getUpdates
复制代码

然后用sendMessage方法就可以让bot给你发一条信息(将下面的chat_id改为刚从上面链接获取到的你的chat_id)(向频道群组发时就需要bot加群)
  1. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendMessage?chat_id=1138220708&text=Hi,MJJ
复制代码


3.TG bot的更新消息的方法有两个
一个是getUpdates,一个是Webhooks
getUpdates是pull模式,大概理解是程序请求一下getUpdates获取用户发过来的信息,再处理信息做出响应
Webhooks是push模式,Telegram会将用户发送的信息发送到你配置的一个webhook url上,这样程序就可以根据用户发送的信息做出响应

如果单单是做推送,发个简单消息,不需要啥交互的,好像根本不需要理会啥更新模式,不用配置webhook,嫌bot token暴露外在的,可以反代时把二级目录也反代就好了。

4.官方提供的bot api是有一些限制(文件大小、效率等等),可以自己搭建api,自己搭建的api好处
下载没有大小限制的文件,直接下载文件,无需在getFile请求之后
最大上传2000 MB的文件。
使用文件的本地路径和文件URI方案上传的文件.
webhook可以使用HTTP URL、本地IP地址、使用任何端口,最大连接数100000。

5.推送可能常用到的方法
sendMessage/sendPhoto/sendAudio/sendDocument/sendVideo/sendVoice/sendMediaGroup 几个参数大同小异
还有其他https://core.telegram.org/bots/api 下面的Available methods查看

例子:
  1. ### sendMessage(直接文本,支持MarkdownV2/HTML)
  2. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendMessage?chat_id=1138220708&text=Hi,MJJ

  3. ### sendPhoto(单张图片。最大10M,可以url地址或者本地图片)
  4. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendPhoto?chat_id=1138220708&photo=https://pixiv50.com/static/images/wcldpgn/6203904_82693450_p0.jpg

  5. ### sendVideo(最大50M,只支持mp4) 加标题参数 caption
  6. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendVideo?chat_id=1138220708&video=https://cdntube2.b-cdn.net/mp4/6ce773dc977f726cd5d56cb28d9d77b2414a6497.mp4&caption=Laura's got big tittie's

  7. #### 加 标题参数 caption, 格式参数parse_mode ,用MarkdownV2模式给标题加超链接
  8. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendVideo?chat_id=1138220708&video=https://cdntube2.b-cdn.net/mp4/6ce773dc977f726cd5d56cb28d9d77b2414a6497.mp4&caption=[Laura's got big tittie's](https://4k5.net/read-8127.html)&parse_mode=MarkdownV2

  9. ### sendMediaGroup(多个媒体,一次最多好像9个,以json模式,第一张图加标题参数)
  10. https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/sendMediaGroup?chat_id=1138220708&media=[{"caption":"[Pixiv50](https://pixiv50.com/)","parse_mode":"MarkdownV2","type":"photo","media":"https://pixiv50.com/static/images/wcldpgn/6203904_82693450_p0.jpg"},{"type":"photo","media":"https://www.pixiv50.com/static/images/iamcnqu/3371956_83774670_p0.jpg"}]
复制代码


6.墙
怎么过墙,上面大佬都给出方案了
最简单的worker反代一下就好

或者找找个web Dali使get请求成功就好,一些能访问外网的奇奇怪怪接口都可以
  1. https://thingproxy.freeboard.io/fetch/https://api.telegram.org/bot1545138812:AAGroid6uSJFbQxRM2f8X6KHlsnDReHUkvE/getUpdates
复制代码

或者去搭建本地api,https://github.com/tdlib/telegram-bot-api

至于怎么上TG客户端接收信息就不说了





.
发表于 2021-2-8 06:19:52 | 显示全部楼层
为什么我还是看不懂
发表于 2021-2-8 06:53:31 来自手机 | 显示全部楼层
写的不错。tg的客户端写的是真的好。简洁轻快。我基本不加群。就当个接收推送的客户端都很好用,
 楼主| 发表于 2021-2-8 11:33:25 | 显示全部楼层
我觉得第二点你跟着做一下就能大概明白整个过程了
发表于 2021-2-9 13:54:53 | 显示全部楼层
好文,收藏了
发表于 2021-2-9 14:01:43 来自手机 | 显示全部楼层
我就是第一篇作者,有人说我搞这个是脱了裤子放屁,然而这么多人在研究,很是欣慰。看来脱了裤子放屁,还是比穿着裤子响亮
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-27 04:16 , Processed in 0.062115 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表