程序主体使用PHP
编写, 依赖于拓展swoole
, 配合酷Q的coolq-http-api插件使用
目前还不是十分完善, 可能存在各种奇怪的问题, 还请各位 dalao 指点一二
- 使用 Swoole 的异步 HTTP Client 请求 Telegram Bot API 服务器
- 将QQ图片缓存为 Telegram File ID , 提高效率
- 拓展性较高, 可轻松支持一个新的 CQ 码或 Telegram 消息格式
- 支持双向发起私聊消息
- 支持 QQ 自带的 Emoji
- 支持 Telegram 端撤回 QQ 消息
- 支持私聊 QQ 黑名单
- 支持 Sticker 无损转发 (可以当 Sticker 转移机器人啦233
- 附带 Web 端消息查看
- 支持位置信息发送与接收
- 机器人在线时手机电脑可同时在线
- 采用世界上最好的语言编写 ((日常拉仇恨
实在编不出来了... /滑稽
- 将代码拖到本地 :
git clone https://github.com/XiaoLin0815/QQ2TG.git
- 将
config\.env.example
改名为config\.env
并根据提示及示例填写完整 - 安装酷Q(若要发送图片则要求安装Pro版本)以及coolq-http-api插件,并添加配置以下参数:
- 酷Q:
- 更改登录模式为平板模式
[Debug] Platform=2
- HTTP API:
- use_ws_reverse : 使用反向 WebSocket 通讯
- ws_reverse_api_url/ws_reverse_event_url : 反向WS服务器地址,对应操作2中配置的
websocket -> host/port
- host/port/use_http : HTTP服务器设置,对应操作2中配置的
coolq -> http_url
{ "use_ws_reverse":true, "ws_reverse_api_url":"ws://192.168.31.120:9501", "ws_reverse_event_url":"ws://192.168.31.120:9501", "host":"0.0.0.0", "port":5700, "use_http":true }
- 更改登录模式为平板模式
-
确保您本地可访问 Telegram Bot API 服务器或填写好了
proxy -> host/port
(若不需要请留空) -
确保您的PHP已安装了
swoole
扩展 -
进入目录, 输入
composer update
-
在网站环境中设置
public/
为运行目录并确保其中的images
目录可写 -
访问
https://api.telegram.org/bot<bot_token>/setWebHook?url=https://<Your_URL>/webhook.php
设置WebHook, 若认为不安全, 可自行改变文件名 -
配置进程守护程序(强烈建议):
- Systemd
# /usr/lib/systemd/system/QQ2TG.service [Unit] Description=QQ2TG Documentation=https://github.com/XiaoLin0815/QQ2TG After=network.target [Service] ExecStart=/path/to/your/php /path/to/QQ2TG/run.php Restart=always [Install] WantedBy=multi-user.target
- Systemd
-
终端输入
service QQ2TG start
-
enjoy it
-
TG端发送消息:
- 私聊机器人并发送
/new_chat
- 选择要私聊的用户
- 回复机器人发出的消息开始私聊
- 私聊机器人并发送
-
Web 消息查看:
- 在 Config.php 中设置好
program -> password
- 打开
http(s)://<Your URL>/admin/message.html
并将权限密钥填写完整 - enjoy it
- 在 Config.php 中设置好
-
Nginx:
location ~ (^\.|/\.) { return 403; }
-
Apache:
RewriteEngine On RewriteRule (^\.|/\.) - [F]
-
IIS:
<configuration> <system.webServer> <rewrite> <rules> <rule name="Block access to dotfiles"> <match url="(^\.|/\.)" ignoreCase="false" /> <action type="CustomResponse" statusCode="403" statusReason="Forbidden" /> </rule> </rules> </rewrite> </system.webServer> </configuration>
本项目仅对 酷 Q Pro 版本提供支持, 对使用 Air 或 Lite 的用户不提供技术支持
日志等级建议调至 2 或以上,否则可能会造成严重的消息延误
由于 Telegram 的特殊性,所有由 QQ 转发至 Telegram 的 GIF 图像都会以链接的方式发送,至于客户端能不能自动解析显示就要看运气了 /滑稽
若要在 Linux 上使用 酷Q , 可参考这里
异步消息发送图片信息缓存用户群名片缓存支持私聊消息支持消息撤回- 更新时自动更新配置
解决文档中提到的问题从 Telegram 端发起私聊
更多CQ码兼容
dalao 们如果有任何问题或者建议请在issue中提出或直接提交PR,感谢万分
毕竟初中生, 就是头脑简单四肢发达, 思维算法一坨屎, 英语极差, 导致代码里很多奇怪或者重复的变量名, 还请多多包涵,有些地方代码质量不高、效率低下, 或者结构有问题的, 还请 dalao 们多多指点
或许真的要像LWL说的那样变得更优秀
吧
2018/08/11 完全重构配置调用方式
2018/08/10 支持位置信息发送与接收
2018/08/09 新增 Web 端消息查看
2018/08/08 新增 rich/sign CQ 码兼容
2018/07/27 新增日志记录
2018/07/26 支持 Sticker 本地处理转发
2018/07/22 支持 Telegram 端先发起私聊
2018/07/20 支持消息撤回
2018/07/18 回复消息提醒对方
2018/07/12 支持双向私聊消息
2018/07/11 更新名片获取机制, 添加伪消息回复支持
2018/07/05 添加图片信息缓存、消息异步发送、群名片缓存, 支持保存消息
2018/07/02 第一版,支持 QQ 与 Telegram 消息双向互通,支持图片、sticker 发送