Telegram 的频道原以为是只能通过客户端访问,或者经由 RSSHub 调用的,但发现其实是可以直接用 HTTP 协议调用的。于是就有了这个 API,访问 Telegram 频道 https://t.me/MikuArt 获取图片 URL 后,上传到今日头条的图床,把地址导入 sqlite 数据库文件,再进行后续调用。
之前在网络上也看见过很多类似的 API,都有些缺点:
- 不开源,服务稳定性未知
- 图片较少,很多基本不再更新
- 不对我胃口
所以就自己写了一个,由于调用的是 Telegram 地址,并且可以自行部署,服务稳定性有保障。另外 Telegram 频道@MikuArt 这个频道存在时间很长了,每天都维持着一个很高的更新频率。
其实也不一定要用这个频道的,你可以改代码改成监控另一个 TG 频道,原理都差不多。
本项目在 github 开源:https://github.com/juzeon/mobile-acg/
下面是发表这篇文章时 README.md 的内容,还是点上面的链接到 github 上看最新的 README 吧。
使用 API
我提供的 API:https://api.skyju.cc/mobile-acg/api.php
所有图片均为 jpg 格式。
你也可以自己搭建(见下文)。
以 JSON 格式随机获取一张或多张图片的地址
GET 参数 | 值类型 | 是否可选 | 说明 |
---|---|---|---|
method | “json”: String | 否 | 本接口规定的 method 值 |
count | Int | 是 | 1-1000 的整数,指定返回图片的个数;不指定则为 1 |
当请求成功时,返回 JSON 中的data
是一个数组对象;否则为错误信息。
示例请求:
|
|
示例返回:
|
|
随机或指定 ID 获取一张图片并跳转到地址
GET 参数 | 值类型 | 是否可选 | 说明 |
---|---|---|---|
method | “get”: String | 否 | 本接口规定的 method 值 |
id | Int | 是 | 图片的 ID;不指定为随机获取 |
示例请求:
|
|
示例返回:
|
|
示例请求:
|
|
示例返回:
|
|
在 VPS 上部署本项目
1.切换到你的站点目录:
|
|
2.拉取本项目:
|
|
3.添加 cron 任务每日从 Telegram 更新图片,上传并存储到数据库:
|
|
4.访问你的网站相应地址,检查 API 可用性。