去年 12 月底,青小蛙介绍了可扩展的聊天平台,隧道机器人框架 EH Forwarder Bot,实现了通过 Telegram Bot(机器人)收发微信功能,无论文字、语音、图片还是视频、表情,都可以互通。几个月用下来,真有点离不开了。
而 EFB 的搭建有一些门槛(官方教程),主要的问题是 Python 3 的配置问题,青小蛙也碰了不少坑。鉴于最近在折腾 Docker,索性把青小蛙是如何安装 EFB 的过程总结出来,方便大家。
▍背景
首先你要有使用 Telegram 的习惯,不然这一切没得玩 ? 。其次,要有一点 Linux 基础,需要一台 VPS,青小蛙这里以 Vultr(? 此链接有返利) 2.5刀最低款套餐为例,系统为 Ubuntu 16.04 x64,CPU 1 核,内存 512M。之所以没有使用 Vultr 提供的 Docker 镜像在于那是台 CentOS,好久没用过了…
▍更新系统
由于新机器,SSH 登录后,照惯例先更新:
apt-get update
apt-get upgrade
▍安装 Docker CE
这里有详细的安装过程,非常容易,照着一行一行敲命令即可:
sudo apt-get -y install apt-transport-https ca-certificates curl
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
sudo apt-get update
sudo apt-get -y install docker-ce
▍通过 Docker 安装 EFB
我们使用 @royx 提供的 EFB 镜像来安装,也非常容易:
docker pull royx/docker-efb
至此,其实服务器端的配置已经完成了,基于 Docker 的安装就是这么简单 ?
下面来配置一下 Telegram,让可爱的小机器人来愉快的工作。
▍配置 Telegram Bot 机器人
EFB 目前实现的 Telegram 与 微信 互通的原理是这样的:
Telegram bot > EFB > 微信网页版 > 微信
所以我们先来配置 Telegram bot:
- 在 Telegram 里搜索 @botfather 并和他对话
- 对 @botfather 说话,输入 /newbot
- 给你的机器人 bot 起个名字
- 继续给机器人起用户名,和上面的名字可以相同,但必须以 bot 结尾
- 获得机器人 Token,下图红色部分,一会要用到
注意以上机器人信息不要泄漏给别人,上面这个测试机器人青小蛙删掉了。
设置 bot 隐私权限
bot 可能会接收不了非 “/” 开头的消息,所以需要设置一下,让 bot 接收全部内容:
继续与 @botfather 对话,输入 /setprivacy,选择刚刚创建的机器人,点击 Disable
▍获得 Telegram ID
再和另外一个机器人 @get_id_bot 对话,点击 start 即可获得你的 Telegram ID,一串数字(Chat ID)。
至此,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 运行 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
在屏幕上,你会看到一个二维码,用微信扫描,登录,大功告成。
▍简单的使用 EFB
你可以完全通过机器人与微信互通,但对于联系人较多的微信用户来说意义不大,所以,我们将微信联系人绑定到一一对应的 Telegram 群组中,就完美解决了一对一聊天的问题。
首先在 Telegram 中创建一个新的群组,比如 青小蛙.WeChat 这个名字,然后将你的机器人邀请进来(此处,手机端的 Telegram 无法直接拉机器人进来,你需要随便拉一个真人,再拉机器人进来,再把那个人踢出去;电脑端则可以在创建群组的时候直接拉机器人进来)
继续和你的机器人聊天,对他说:
/link 青小蛙
EFB 会自动帮你搜索微信联系人,并显示搜索结果,点击你需要的联系人名:
再点击 Link,此时 Telegram 会弹出联系人选单,选择刚刚创建的群组,即完成了微信联系人与 Telegram 群组的绑定。
现在已经可以愉快的和机器人聊天啦,你还可以把群组的头像改成微信联系人的头像,感觉…就跟微信换了一个客户端一样 ?
原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/164290.html