Skip to content
ihc童鞋@提不起劲 edited this page May 1, 2018 · 7 revisions

Telegram Channel Bot 是一个支持多平台的 Telegram Channel/User/Group 推送机器人。

使用该 Bot 可以轻松将任意的 Twitter、Tumblr 等平台用户消息流聚合至 Telegram 频道/用户/群组中。

该 Bot 支持同时推送消息至多个频道/用户/群组(下称“聊天”),每个聊天都支持多个平台,每个平台支持多名关注用户。

安装

直接进入 Release 页面 下载对应平台的可执行文件,解压缩后即可运行。Linux用户需要chmod +x tg_channel_bot添加可执行位。

配置

配置文件样例见config_example.json,只需修改该文件即可。

Twitter 推送需要 申请 Twitter API 并获取 Token ,Tumblr 推送也需要 申请 Tumblr API获取 Token(打开链接授权后Show Keys)

配置文件字段说明:

  • token: Telegram Bot Token。使用你个人的Telegram账号向 @BotFather 发起聊天即可申请。
  • timeout: HTTP请求超时时间(秒),设置较大值可以避免出现大体积视频无法推送的情况。建议设置为 120
  • database: 数据库文件保存位置,可以填写相对路径或绝对路径,建议设置为 database.db
  • admins: 超级管理员列表,拥有包括添加普通管理员的所有权限。请填写你自己的Telegram ID,如 ihciah
  • fetcher_config
    • twitter
      • access_token: 你申请到的 Twitter API 的 access_token
      • access_token_secret: 你申请到的 Twitter API 的 access_token_secret
      • consumer_key: 在 Keys and Access Tokens 页面中生成。
      • consumer_secret: 在 Keys and Access Tokens 页面中生成。
    • tumblr
      • consumer_key: 你申请到的 Tumblr OAuth Consumer Key
      • consumer_secret: 你申请到的 Tumblr OAuth Consumer Secret
      • access_token: 获取 Token
      • access_token_secret: 获取 Token Secret

使用

配置文件修改完成后,可以改名为 config.json,然后放在程序同目录中,直接运行程序即可。

或者你也通过 -c 参数控制配置文件路径,如 ./tg_channel_bot -c config.json

控制

程序运行之后可以接受控制命令。

  • 获取 Chat ID:在要获取ID的聊天中(私聊/群聊)发送/id。请注意,当 Bot 开启 Privacy Mode 时,需要在群组中额外 @bot 才能获得结果,即 /id @your_bot 。该 Chat ID 可以替代下文的所有 @channel_id,对应地,Bot 推送的目的地会变更为 Chat ID 所对应的私聊或群聊。

  • 在bot中添加 Channel:需超级管理员权限。指令为 addchannel @channel_id,其中@channel_id是以@开头的你的 Channel 的ID(t.me/@channel_id)。在这一步之前,务必先将 Bot 添加为 Channel 管理员。当然@channel_id并不局限于 Channel,你可以将@channel_id替换为Chat ID(数字,无@符号)。 样例:

addchannel @test_channel
addchannel 1234567890
  • 给指定 Channel 添加普通管理员: 需超级管理员权限。指令为 addadmin @channel_id username,其中username是待添加的管理员的用户名,开头无@。普通管理员可以管理本Channel的关注列表。 样例:
addadmin @test_channel ihciah
  • 添加关注: 普通/超级管理员。指令为 addfollow @channel_id site_name user_name,其中site_name是预设的网站名, 可选: twitter, tumblruser_name 即对应网站的用户名。 样例:
addfollow @test_channel twitter cchaai

除这些指令外,还可以使用 delchannel 删除 channel,deladmin 删除普通管理员,delfollow 删除关注;listchannel, listadmin, listfollow 分别可以列出 channel,普通管理员和关注用户。

更新频率控制

默认更新频率为 10 分钟。即每 10 分钟,对每个 channel,每个网站,每个关注用户做一次请求,所以总的请求次数为channel * site * user,请注意 Twitter 和 Tumblr 的 API 请求限制,如 Tumblr 的限制为每小时1000次请求,每天5000次请求。

你可以使用指令 setinterval @channel_id site_name t 控制指定的 channel 指定的 site 的更新频率,t为更新间隔秒数。样例:

setinterval @test_channel twitter 500

时光机

如果你漏掉了什么消息,可以直接重置最后更新时间。这样可以获取该时间以后的所有消息,对调试有一些帮助。指令:goback @channel_id site_name tback,其中tback为倒退秒数。样例:

goback @test_channel twitter 3600

黑名单

缓存数据库默认7天有效,这期间重复图片/视频不会被发送。如果你讨厌的图片每隔7天出现一次,那么你可以将它(单个图片)直接转发给Bot,Bot会将其永久拉黑。

守护运行(Linux)

安装 supervisor ,并将修改后的 bot.conf 放在 /etc/supervisor/conf.d 中,然后 sudo supervisorctl reload

声明

本项目禁止商业用途。如有困难请发 issue 或直接联系我

Clone this wiki locally