最近做網站的推廣,無意中在一個網站中看到一個支持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。
Telegram
的Token
獲取方法如下:
1、在Telegram關注@BotFather
2、再到對話框依次輸入:/start=>/newbot,然后會要你給機器人命名(如:MoeratsBot),命名完成會給你一個Token。
3、為了順利使用,還需要輸入/mybots,然后依次選擇Bot Settings=>Group Privacy=>Turn off。
Telegram
群ID
獲取方法如下:
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

依次填入相應的參數信息,參考圖如下:
部分參數解釋:
#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 x
,y
保存退出。
4、啟動插件
然后我們通過http://IP:9000
訪問VNC
界面,啟動酷Q
主程序。右鍵點擊酷Q
懸浮窗,選擇應用→應用管理→啟用CoolQ Telegram Bot X
即可。