tg-bot
的官方api
有一些限制,自建api
,可以:
- 下载文件没有大小限制。
- 上传最大
2000 MB
的文件。 - 使用本地路径和文件
URI
方案上传文件。 - 为
Webhook
使用 HTTP URL。 - 为
webhook
使用任何本地 IP 地址。 - 为
webhook
使用任何端口。 - 将
max_webhook_connections
设置为100000
。 - 接收绝对本地路径作为
file_path
字段的值,而无需在getFile
请求后下载文件。
安装
使用docker-compose
来安装,如果是deb
系系统,如何安装docker-compose
见:https://www.kuku.me/archives/45/
获取app_id和app_hash
在API development tools登陆,填入信息,将会获得app_id
和app_hash
配置docker-compose.yml
其他环境变量见:https://hub.docker.com/r/aiogram/telegram-bot-api
version: '3.7'
services:
telegram-bot-api:
image: aiogram/telegram-bot-api:latest
restart: always
environment:
TELEGRAM_API_ID: "app_id"
TELEGRAM_API_HASH: "app_hash"
TELEGRAM_LOCAL: 1
volumes:
- ./data:/var/lib/telegram-bot-api
ports:
# :左边为映射的端口
- 8888:8081
启动
docker compose up -d
13 条评论
'上传最大2000 MB的文件。'
是对什么文件类型限制?我试着用上传大于20m图片还是会提示of size 59699685 bytes is too big for a photo
肯能只适用于sendDocument方法吧,尝试2000M一下可以上传的
本地路径 的话 不能通过 自建的api 加文件路径取文件吗?
https://www.kuku.me/archives/40/
如果是我的机器人,且机器人没有用docker部署,本地jar部署的,支持读取用户向机器人发送的文件
我用本文章docker部署的, 访问 http://tg.myserver.org/file/bottoken*/var/lib/telegram-appi/token/documents/1.txt, 这样的规则是404的, 无法直接从url下载文件,试过了,传本地路径也不行 , 退一万步的解决办法是 nginx 把该目录静态了, 有通过自有服务的办法解决吗? 还是我哪里不对劲
不能通过url访问。你可以另外起一个服务去访问他。要是支持url访问,我也不会在机器人上加个localpath的配置的,直接读url就行了
那这块 ->> 接收绝对本地路径作为file_path字段的值,而无需在getFile请求后下载文件 有什么用呢? 怎么用这里的
你是在开发机器人吗?这段话我从官方api介绍复制过来的。
大概是这个样子,我的机器人现在好像没有接受文件的功能了,记得不是很清楚
发送文件到机器人,有个fileid,调用getFile函数,会返回该文件的绝对路径。
感谢老哥的项目, 已经实现 实时 tg->阿里云了
我弄一个文件转存,然后 同步到阿里云的, 官方api是传 file_id 给getFIle()获取 绝对url路径的, 用你这个也可以getFile(file_id) 就是我提问的那个path 问题, 既然 不能用过url访问 ,我只能通过别的方式 把存好的文件拿出来了
搭建完了,怎么使用呢
开发机器人的时候把url填进去就可以了,如果用其他人的机器人程序搭建的话,如果提供了配置自建服务器也可以填入
我有一点不明白,单独部署tg的bot-api后,接收信息还是由tg那边发过来吗?还是直接botapi服务器直接接收到变动?