EH Forwarder Bot 使用:用 Telegram 收发微信 (Docker 实现)

by Leonn

Leonn的博客 / 2018-05-30 16:09

主体内容来自小众软件:EFB 简明安装教程:用 Telegram 收发微信 [基于 Docker]

简介

  • 对于 Telegram 重度用户来说,巴不得将其他平台的信息都同步到 TG 上。而 EH Forwarder Bot 恰恰就是做这个的。这里主要介绍如何将其与微信关联来收发信息。
  • 非Docker的话,请查看官方教程 或 此教程
  • 官方捐献地址

EH Forwarder Bot 使用:用 Telegram 收发微信 (Docker 实现)EH Forwarder Bot 使用:用 Telegram 收发微信 (Docker 实现)

搭建过程

配置准备:Telegram Bot 机器人信息

  • EFB 目前实现的 Telegram 与 微信 互通的原理是这样的:

Telegram bot > EFB > 微信网页版 > 微信

  • 所以我们先来配置 Telegram bot:
    1. 在 Telegram 里搜索 @botfather 并和他对话
    2. 对 @botfather 说话,输入 /newbot
    3. 给你的机器人 bot 起个名字
    4. 继续给机器人起用户名,和上面的名字可以相同,但必须以 bot 结尾
    5. 获得机器人 Token,下图红色部分,一会要用到

EH Forwarder Bot 使用:用 Telegram 收发微信 (Docker 实现)EH Forwarder Bot 使用:用 Telegram 收发微信 (Docker 实现)

注意以上机器人信息不要泄漏给别人

  • 设置 bot 权限及其他配置
    bot 可能会接收不了非 “/” 开头的消息,所以需要设置一下,让 bot 接收全部内容:
    /setprivacy 到 @BotFather,选择刚刚创建的机器人,然后选择 “Disable”
    /setjoingroups 到 @BotFather,选择刚刚创建的机器人,然后选择 “Enable”
    /setcommands 到 @BotFather,选择刚刚创建好的 Bot 用户名,然后发送如下内容:
link - 将会话绑定到 Telegram 群组  chat - 生成会话头  recog - 回复语音消息以进行识别  extra - 获取更多功能

  • 获得 Telegram ID
    再和另外一个机器人 @get_id_bot 对话,点击 start 即可获得你的 Telegram ID,一串数字(Chat ID)。下面这些机器人也可以获取这个ID。
@get_id_bot 发送 /start  @XYMbot 发送 /whois  @mokubot 发送 /whoami  @GroupButler_Bot 发送 /id  @jackbot 发送 /me  @userinfobot 发送任意文字  @orzdigbot 发送 /user
  • 至此,Telegram 的配置完成,我们得到两个重要的数字:token、Telegram ID

配置准备:EFB 配置文件准备

  • 这里是最简单的一份配置文件,你可以从这里获得 官方提供的配置文件:
master_channel = 'plugins.eh_telegram_master', 'TelegramChannel'  slave_channels = [('plugins.eh_wechat_slave', 'WeChatChannel')]     eh_telegram_master = {      "token": "12345678:QWFPGJLUYarstdheioZXCVBKM",      "admins": [13456782],      "bing_speech_api": ["xxx", "xxx"],      "baidu_speech_api": {          "app_id": 0,          "api_key": "xxx",          "secret_key": "xxx"      }  }
  • 将以上内容保存为 config.py 文件,注意把上面 token以及 admins 冒号后面的部分替换成刚刚获得的 token 和 Chat ID。即:下面这部分:
“token”: “12345678:QWFPGJLUYarstdheioZXCVBKM“,  “admins”: [13456782],

注意 xxx 部分可以自己申请,也可以参考官方提供的内容。

  • 再新建一个 tgdata.db 文件:
touch tgdata.db

  • 至此,EFB 的配置完成,我们得到两个文件: config.py、tgdata.db,在这里我们举例将这两个文件保存在 /root/efb/config.py 和 /root/efb/tgdata.db 这两个位置(实际可以自行指定,记住就好)。

Docker安装

  • 推荐使用 daocloud 的镜像安装,个人使用的系统是 Debian 8 64位版本。
curl -sSL https://get.daocloud.io/docker | sh

Docker安装不上?请百度,这里不会解释如何安装排错。实在搞不定的话,放弃用 docker 吧。

  • EFB镜像下载
docker pull royx/docker-efb

通过 Docker 运行 EFB

  • 语法说明:
docker run -d --restart=always --name=ehforwarderbot           -v $(pwd)/config.py:/opt/ehForwarderBot/config.py           -v $(pwd)/tgdata.db:/opt/ehForwarderBot/plugins/eh_telegram_master/tgdata.db           royx/docker-efb

  • 一键启动,注意需要把 $(pwd) 改成刚刚创建的两个文件路径,如果与上文一致在 /root/efb/,则执行:
docker run -d --restart=always --name=ehforwarderbot -v /root/efb/config.py:/opt/ehForwarderBot/config.py -v /root/efb/tgdata.db:/opt/ehForwarderBot/plugins/eh_telegram_master/tgdata.db royx/docker-efb

  • 所有安装、配置、运行已完成。

登录微信

  • 现在,我们只需要登录微信,就可以了:
docker logs ehforwarderbot

  • 在屏幕上,你会看到一个二维码,用微信扫描,登录,大功告成。

收发信息

  • 发:直接在机器人里面回复对应消息即可实现发送
  • 收:收信息默认在机器人里,可以通过 /link 命令,将指定信息绑到特定群组里面。

其他参考文档:

    1. “在Telegram上实现微信收发”——EHForwarderBot搭建指南
    2. 搞定了最新版本 EFB2.0.0, telegram 收发微信,工作正常。

已知BUG

  • 掉线问题,3天左右就会出现。
  • Docker 中途登陆的微信被顶掉后(其他客户端连接了微信),会不停的发登录确认消息给 telegram bot,直到在微信手机 app 上确认后,消息才会停止。
  • 不支持红包、支付、朋友圈、转账、语音通话、视频聊天等网页版不支持的消息类型。

原创文章,作者:Leonn,如若转载,请注明出处:https://liyuans.com/2018/05/ehforwarderbot.html

Shared via Inoreader