Telegram与QQ消息互转

时间:2024-03-06 14:47:25

最近做网站的推广,无意中在一个网站中看到一个支持TG群、QQ群消息互转的帖子( http://www.hoobg.com/2802/ ),正好我的网站又在这两个媒体平台有推广业务,所以我就想试试这个插件,真的是完全按照那个教程来的,到最后总是遇到一个问题:QQ群可以向TG群转发,但是TG群不能向QQ群转发。

那我是怎么解决的呢?昨天试了一天,都没有成功,在最后要睡觉的时候找到了写这个插件的人,于是给他发了一封邮件,今天联系了他,找到了原因。

参考了他给的说明,我将机器人重新添加进来后,发现可以在日志中有TG转发过来的消息,昨天是没有的,这个我很确定。但是不会转发到QQ群中,那个开发的人说换个QQ,我就换了个QQ试试,于是所有的功能都正常了。

这个过程中需要的技术和常用代码记录

在Windows中搭建倒是不需要很多的代码,但是在服务器中搭建倒是需要很多代码,本人记忆力差,在这里记录以方便日后查阅。

使用Docker安装Wine-CoolQ,并运行酷Q Air/Pro(QQ机器人)(原文链接: https://www.moerats.com/archives/802/ )

1、安装Docker

#CentOS 6
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
yum update -y
yum -y install docker-io
service docker start
chkconfig docker on

#CentOS 7、Debian、Ubuntu
curl -sSL https://get.docker.com/ | sh
systemctl start docker
systemctl enable docker

2、安装wine-coolq

docker run --restart=always --name wine-coolq -d \
-p 9000:9000 \
-v /coolq:/home/user/coolq \
-e VNC_PASSWD=moerats \
-e COOLQ_ACCOUNT=1234567 \
coolq/wine-coolq

参数说明:

-p 将内部的Web运行端口9000映射到外部的9000,可自行修改端口。
-v 将内部酷Q和其数据文件夹/home/user/coolq映射到外部的/coolq文件夹,可自行修改路径。
-e 为环境变量,大致有3个变量,其中第3种未使用,大致如下:
1、VNC_PASSWD为VNC密码。注意该密码不能超过8个字符,默认MAX8char。
2、COOLQ_ACCOUNT为设置要登录酷Q的帐号。在第一次手动登录后,你可以勾选“快速登录”功能以启用自动登录,此后,docker容器启动或酷Q异常退出时,便会自动为你登录该帐号。
3、COOLQ_URL为下载酷Q的地址,默认为http://dlsec.cqp.me/cqa-tuling,即酷Q Air图灵版。请确保下载后的文件能解压出酷Q Air/CQA.exe或酷Q Pro/CQP.exe。

安装好了后,访问http://IP:9000,可以打开一个VNC页面,输入密码,文中默认moerats,即可看到一个酷Q Air已经启动。

对于CentOS系统,还需要开启9000端口,开启如下:

#CentOS 6
iptables -I INPUT -p tcp --dport 9000 -j ACCEPT
service iptables save
service iptables restart

#CentOS 7
firewall-cmd --zone=public --add-port=9000/tcp --permanent
firewall-cmd --reload

相关命令:

#启动镜像
docker start wine-coolq
#重启镜像
docker restart wine-coolq
#下载CTBX插件,如果插件有更新记得替换下载链接
wget https://github.com/JogleLew/coolq-telegram-bot-x/releases/download/10.2.1/top.jogle.ctbx.zip
#解压插件
unzip top.jogle.ctbx.zip
#新建配置文件存放文件夹
mkdir -p /coolq/app/top.jogle.ctbx/config/
#移动插件
mv top.jogle.ctbx.cpk /coolq/app/
#移动配置文件并重新命名
mv config/config_example.json /coolq/app/top.jogle.ctbx/config/config.json
#清理垃圾
rm -rf top.jogle.ctbx.zip config
#给文件夹权限
chmod 777 /coolq/app/top.jogle.ctbx

解压文件的时候,如果出现-bash: unzip: command not found,需要运行命令:

#CentOS系统
yum -y install unzip

#Debian/Ubuntu系统
apt install unzip -y

3、配置插件

提示:这里配置文件有个地方的格式有点小错误,在第3个和第4个规则之间缺个逗号“,”,记得在后面编辑的时候补齐,不然运行会报错。

接下来我们还需要编辑config.json配置文件,需要用到的参数有:

Bot_Token(Telegram机器人的Token),Bot_QQ(酷Q登录的机器人QQ),QQ群号码和Telegram群ID。

TelegramToken获取方法如下:

1、在Telegram关注@BotFather
2、再到对话框依次输入:/start=>/newbot,然后会要你给机器人命名(如:MoeratsBot),命名完成会给你一个Token。
3、为了顺利使用,还需要输入/mybots,然后依次选择Bot Settings=>Group Privacy=>Turn off。

TelegramID获取方法如下:

1、新建一个Telegram群,然后把你的机器人拉进群
2、发送一条消息并@下机器人,比如:/my_id @MoeratsBot
3、在浏览器输入https://api.telegram.org/botxx:xx/getUpdates(其中xx:xx为Token),然后会返回类似信息:"chat":{"id":-2265968,"title":"MOERATS"。此时的-2265968就为群ID。

这时候参数都有了,然后开始编辑配置文件:

#不习惯用命令编辑的,可以直接通过FTP登录VPS,再找到文件进行编辑
nano /coolq/app/top.jogle.ctbx/config/config.json
使用CoolQ Telegram Bot X转发/合并QQ群和Telegram群之间的消息

依次填入相应的参数信息,参考图如下:

部分参数解释:

#From_Group和To_Group
转发的来源群组和目标群组,这里对于Tg群需要输入chat_id,QQ群需要输入群号。

#Type
转发方式,目前支持所有的转发方式,即:T<->Q、T->Q、Q->T、Q->Q、T->T,其中默认左边的为From_Group右边的是To_Group,也就是说Q<->T和T<->Q是不等价的,如果是T<->Q的话TG群的id应该写在From_Group,而如果是Q<->T的话QQ群号应该写在From_Group。

完全重复的转发规则后者会取代前者,同一个群组可以被应用于不同的转发规则上,说简单点就是一张有向图。

举例:
T<->Q:QQ群1和TG群2相互转发
Q<->T:TG群3和QQ群4相互转发
T->Q:TG群5单向转发到QQ群6
Q->T:QQ群7单向转发到TG群8
Q->Q:QQ群9单向转发到QQ群10
T->T:TG群11单向转发到TG群12

编辑好了后,使用Ctrl xy保存退出。

4、启动插件
然后我们通过http://IP:9000访问VNC界面,启动酷Q主程序。右键点击酷Q悬浮窗,选择应用→应用管理→启用CoolQ Telegram Bot X即可。

最后记录一个开发这个插件的人的注意事项: https://github.com/JogleLew/coolq-telegram-bot-x/wiki/FAQ#q%E4%B8%BA%E4%BB%80%E4%B9%88tg%E6%9C%89%E4%BA%9B%E6%B6%88%E6%81%AF%E5%8F%AF%E4%BB%A5%E8%BD%AC%E5%8F%91%E4%BD%86%E6%98%AF%E6%9C%89%E7%9A%84%E5%8D%B4%E4%B8%8D%E8%83%BD%E6%AF%94%E5%A6%82%E5%8D%95%E5%9B%BE%E5%8D%95%E6%96%87%E9%83%BD%E5%8F%AF%E4%BB%A5%E8%BD%AC%E5%8F%91%E4%BD%86%E6%98%AF%E5%9B%BE%E6%96%87%E4%B8%80%E8%B5%B7%E6%97%A0%E6%B3%95%E8%BD%AC%E5%8F%91

编辑