JQ-Networks/UnifiedMessageRelay

无法从 QQ 转发到 tg

seiuneko opened this issue · 36 comments

症状描述

文字 & 图片都无法转发
同时从 tg 也不能转发图片到 QQ

python3 daemon.py run 的执行输出

2017-12-23 13:57:37,210 [INFO] CTBMain - daemon(daemon.py) : Now running in debug mode...
2017-12-23 13:57:37,218 [DEBUG] telegram.ext.dispatcher - dispatcher(dispatcher.py) : Setting singleton dispatcher as <telegram.ext.dispatcher.Dispatcher object at 0x7f5b50f69d68>
2017-12-23 13:57:37,221 [DEBUG] telegram.ext.updater - updater(updater.py) : dispatcher - started
2017-12-23 13:57:37,222 [DEBUG] telegram.ext.updater - updater(updater.py) : updater - started
2017-12-23 13:57:37,223 [DEBUG] telegram.ext.updater - updater(updater.py) : Updater thread started
2017-12-23 13:57:37,225 [DEBUG] telegram.bot - bot(bot.py) : Entering: set_webhook
2017-12-23 13:57:37,227 [DEBUG] telegram.vendor.ptb_urllib3.urllib3.connectionpool - connectionpool(connectionpool.py) : Starting new HTTPS connection (1): api.telegram.org
Bottle v0.12.13 server starting up (using WSGIRefServer())...
Listening on http://127.0.0.1:8080/
Hit Ctrl-C to quit.

2017-12-23 13:57:37,232 [DEBUG] CTBPlugin.plugins.qq_namelist - qq_namelist(qq_namelist.py) : plugins.qq_namelist loading
2017-12-23 13:57:37,234 [DEBUG] CTBMain.command - command(command.py) : Registering new command: update namelist(update_namelist)
2017-12-23 13:57:37,234 [DEBUG] CTBMain.command - command(command.py) : update namelist(update_namelist) added to global_vars
2017-12-23 13:57:37,239 [DEBUG] telegram.ext.dispatcher - dispatcher(dispatcher.py) : Dispatcher started
2017-12-23 13:57:37,914 [DEBUG] telegram.vendor.ptb_urllib3.urllib3.connectionpool - connectionpool(connectionpool.py) : https://api.telegram.org:443 "POST /bot***************************************/setWebhook HTTP/1.1" 200 68
2017-12-23 13:57:37,915 [DEBUG] telegram.bot - bot(bot.py) : True
2017-12-23 13:57:37,916 [DEBUG] telegram.bot - bot(bot.py) : Exiting: set_webhook
2017-12-23 13:57:37,925 [DEBUG] telegram.bot - bot(bot.py) : Entering: get_updates
2017-12-23 13:57:38,339 [DEBUG] CTBPlugin.plugins.show_group_id - show_group_id(show_group_id.py) : plugins.show_group_id loading
2017-12-23 13:57:38,340 [DEBUG] CTBMain.command - command(command.py) : Registering new command: show group id(show_tg_group_id)
2017-12-23 13:57:38,341 [DEBUG] CTBMain.command - command(command.py) : show group id(show_tg_group_id) added to global_vars
2017-12-23 13:57:38,341 [DEBUG] CTBMain.command - command(command.py) : Registering new command: show group id(show_qq_group_id)
2017-12-23 13:57:38,342 [DEBUG] CTBMain.command - command(command.py) : show group id(show_qq_group_id) added to global_vars
2017-12-23 13:57:38,343 [DEBUG] CTBPlugin.plugins.for_fun - for_fun(for_fun.py) : plugins.for_fun loading
2017-12-23 13:57:38,344 [DEBUG] CTBMain.command - command(command.py) : Registering new command: dice(dice)
2017-12-23 13:57:38,345 [DEBUG] CTBMain.command - command(command.py) : dice(dice) added to global_vars
2017-12-23 13:57:38,347 [DEBUG] CTBMain.command - command(command.py) : Registering new command: rps(rps)
2017-12-23 13:57:38,348 [DEBUG] CTBMain.command - command(command.py) : rps(rps) added to global_vars
2017-12-23 13:57:38,349 [DEBUG] CTBMain.command - command(command.py) : Registering new command: alipay(show_red_pack)
2017-12-23 13:57:38,350 [DEBUG] CTBMain.command - command(command.py) : alipay(show_red_pack) added to global_vars
2017-12-23 13:57:38,351 [DEBUG] CTBPlugin.plugins.recall - recall(recall.py) : plugins.recall loading
2017-12-23 13:57:38,351 [DEBUG] CTBMain.command - command(command.py) : Registering new command: recall(recall)
2017-12-23 13:57:38,352 [DEBUG] CTBMain.command - command(command.py) : recall(recall) added to global_vars
2017-12-23 13:57:38,360 [DEBUG] CTBPlugin.plugins._002_water_meter_control - _002_water_meter_control(_002_water_meter_control.py) : plugins._002_water_meter_control loading
2017-12-23 13:57:38,361 [DEBUG] CTBPlugin.plugins._002_water_meter_control - _002_water_meter_control(_002_water_meter_control.py) : Begin loading water meter config
2017-12-23 13:57:38,362 [DEBUG] CTBPlugin.plugins._002_water_meter_control - _002_water_meter_control(_002_water_meter_control.py) : plugins._002_water_meter_control loaded
2017-12-23 13:57:38,363 [DEBUG] CTBPlugin.plugins._000_admins - _000_admins(_000_admins.py) : plugins._000_admins loading
2017-12-23 13:57:38,363 [DEBUG] CTBPlugin.plugins._000_admins - _000_admins(_000_admins.py) : Begin loading admin list
2017-12-23 13:57:38,364 [DEBUG] CTBPlugin.plugins._000_admins - _000_admins(_000_admins.py) : plugins._000_admins loaded
2017-12-23 13:57:38,365 [DEBUG] CTBPlugin.plugins._001_group_invite - _001_group_invite(_001_group_invite.py) : plugins._001_group_invite loading
2017-12-23 13:57:38,366 [DEBUG] CTBPlugin.plugins._1001_command - _1001_command(_1001_command.py) : plugins._1001_command loading
2017-12-23 13:57:38,367 [DEBUG] CTBMain.command - command(command.py) : Registering new command: show commands(command_qq)
2017-12-23 13:57:38,367 [DEBUG] CTBMain.command - command(command.py) : show commands(command_qq) added to global_vars
2017-12-23 13:57:38,368 [DEBUG] CTBMain.command - command(command.py) : Registering new command: show commands(command_tg)
2017-12-23 13:57:38,368 [DEBUG] CTBMain.command - command(command.py) : show commands(command_tg) added to global_vars
2017-12-23 13:57:38,374 [DEBUG] CTBMain.command - command(command.py) : Registering new command: help(command_qq)
2017-12-23 13:57:38,375 [DEBUG] CTBMain.command - command(command.py) : help(command_qq) added to global_vars
2017-12-23 13:57:38,376 [DEBUG] CTBMain.command - command(command.py) : Registering new command: help(command_tg)
2017-12-23 13:57:38,378 [DEBUG] CTBMain.command - command(command.py) : help(command_tg) added to global_vars
2017-12-23 13:57:38,380 [DEBUG] CTBPlugin.plugins._1002_filter_old_message - _1002_filter_old_message(_1002_filter_old_message.py) : plugins._1002_filter_old_message loading
2017-12-23 13:57:38,382 [DEBUG] CTBPlugin.plugins._1005_drive_mode - _1005_drive_mode(_1005_drive_mode.py) : plugins._1005_drive_mode loading
2017-12-23 13:57:38,383 [DEBUG] CTBMain.command - command(command.py) : Registering new command: drive mode on(drive_mode_on)
2017-12-23 13:57:38,388 [DEBUG] CTBMain.command - command(command.py) : drive mode on(drive_mode_on) added to global_vars
2017-12-23 13:57:38,394 [DEBUG] CTBMain.command - command(command.py) : Registering new command: drive mode off(drive_mode_off)
2017-12-23 13:57:38,396 [DEBUG] CTBMain.command - command(command.py) : drive mode off(drive_mode_off) added to global_vars
2017-12-23 13:57:38,399 [DEBUG] CTBPlugin.plugins._1006_water_meter_filter - _1006_water_meter_filter(_1006_water_meter_filter.py) : plugins._1006_water_meter_filter loading
2017-12-23 13:57:38,408 [DEBUG] CTBPlugin.plugins._1100_text_forward - _1100_text_forward(_1100_text_forward.py) : plugins._1100_text_forward loading
2017-12-23 13:57:38,410 [DEBUG] CTBMain.command - command(command.py) : Registering new command: image link on(pic_link_on)
2017-12-23 13:57:38,411 [DEBUG] CTBMain.command - command(command.py) : image link on(pic_link_on) added to global_vars
2017-12-23 13:57:38,412 [DEBUG] CTBMain.command - command(command.py) : Registering new command: image link off(pic_link_off)
2017-12-23 13:57:38,413 [DEBUG] CTBMain.command - command(command.py) : image link off(pic_link_off) added to global_vars

环境

  • 是否使用 docker
  • 使用的开发分支

配置文件

bot_constant.json

{
    "DEBUG_MODE": true,
    "BAIDU_API": "",
    "API_ROOT": "http://127.0.0.1:5700/",
    "ACCESS_TOKEN": "very",
    "SECRET": "long",
    "HOST": "127.0.0.1",
    "PORT": 8080,
    "TOKEN": "************************",
    "QQ_BOT_ID": "******",
    "FORWARD_LIST": [
        {
            "QQ": 2333333333,
            "TG": -2333333333333,
            "DRIVE_MODE": false,
            "IMAGE_LINK": true
        },
        {
            "QQ": 23333333,
            "TG": -23333333,
            "DRIVE_MODE": false,
            "IMAGE_LINK": true
        }
    ],
    "SERVER_PIC_URL": "http://expample.com/image/",
    "CQ_ROOT": "/home/user/coolq/",
    "JQ_MODE": true
}

app/io.github.richardchien.coolqhttpapi/config.cfg

[general]
host=0.0.0.0
port=5700
use_http=yes
ws_host=0.0.0.0
ws_port=5700
use_ws=no
post_url=http://127.0.0.1:8080
access_token=very
secret=long
post_message_format=array
serve_data_files=no
update_source=https://raw.githubusercontent.com/richardchien/coolq-http-api-release/master/
update_channel=stable
auto_check_update=no
auto_perform_update=no
thread_pool_size=8
server_thread_pool_size=4

你分别测试以下两个内容

在 telegram 群组中发送 !!id ,看看有没有反应
如果没有反应需要检查到 telegram 的网络连接

在 qq 中发送消息 !!id ,看看有没有反应
如果没有反应需要检查 cq-http-api 是否已启用

你的 log 没有看到异常,说明不是执行的时候出问题了,而是环境有些问题

tg 有反应且可以正常转发
qq 无反应且不能转发

所以是 cq-http-api 的问题了?

什么叫正常转发,是指 tg 发送文本能发到 qq 吗
如果你的意思只是发送 !!id 能收到回复,那么就是 cq-http-api 出现了问题,例如没启用啥的

docker 版不是我创建的,所以我不确定会不会是这个问题

你先去 coolq 的面板里检查下cq-http-api 是否已启用,以及 coolq 的日志页面能否看到 cq-http-api 的加载日志

什么叫正常转发,是指 tg 发送文本能发到 qq 吗

对的


如果你的意思只是发送 !!id 能收到回复,那么就是 cq-http-api 出现了问题,例如没启用啥的

在 QQ 发送 !!id 无反应

@xyf1219 那就是了,先检查 cq-http-api 的部署吧

suggest: add common problem list and trouble shooting to README :)

@JogleLew 交给你了,这个锅

感觉 cq-http-api 已经安装并启用了的……

@xyf1219 那请问你是在docker 内部执行的bot主程序吗,如果不是会连不上

对的
我还可以提供什么信息呢?

@xyf1219 问得好,让我想想

Z4HD commented

@xyf1219 你或许应当看看酷Q的日志,检查一下你的Bot能否收到你发送的消息。


@jqqqqqqqqqq 只要做好端口映射,对于HTTP API来说容器外访问应该不成问题罢。

@Z4HD 我没有对http api的本地资源映射做兼容,所以发图什么的还得在里边执行

@Z4HDcoolq 的日志吗?
都是有消息的

@Z4HD 请问你的「粗」分割线是怎么实现的呢?
试了下 <hr> & *** 都不行

Z4HD commented

@xyf1219

Bot配置文件

请检查ACCESS_TOKENSECRET两项是否与config.cfg中对应一致。

酷Q

  1. 检查日志中是否有HTTP API插件已启用字样,如无,则说明CQ HTTP API未正确启动。
  2. 通过QQ向Bot发送消息后,检查日志中是否有API服务类型的消息,如无,则说明Bot与CQ HTTP API之间的通信存在问题或Bot本身的运行存在问题。

等等玄学 忽然又可以了……
在查看 coolq 日志时快速重启 然后 居然可以了喵

@xyf1219 那你很喵喵喵啊

(:зゝ∠)
麻烦你们了 这么晚
谢谢!

@xyf1219 没事,我在用一个 github bot 回复你

Z4HD commented

@xyf1219 那你很喵喵喵啊

@xyf1219 没事,我在用 github.com 网页 回复你

你们……


@Z4HD +1


@jqqqqqqqqqq 是 tg 机器人?

@xyf1219 不是啊,我只是懒得开网页了

Z4HD commented

@xyf1219 加入粉丝用户群,该了

23333
那个 可能捕获枚野生 bug
QQ 的 @ 转发到 tg 后没有空格

@2333 喵? => @2333喵?

# 就不开新 issue 了喵……

那个 发现 tg 不能转发图片到 QQ

@xyf1219 好问题,我回头会改一下的,这个空格确实是疏忽了

@xyf1219 图片转发不过去?看看发图片的时候的日志,以及试试qq能不能发到tg。日志看coolq的日志和bot的

Z4HD commented

@xyf1219

  1. 是否使用Coolq Air 但设置了"JQ_MODE": true
  2. 如使用CQA,那是否正确配置了图片静态访问

@Z4HD 氪金的啦

Z4HD commented

@xyf1219 据说CQP本身发图就比较玄学,突然不能用了或许应当换个姿势重启CQP。

@Z4HD 重启过了说……

ctb 的日志

2017-12-23 16:30:22,309 [DEBUG] telegram.vendor.ptb_urllib3.urllib3.connectionpool - connectionpool(connectionpool.py) : https://api.telegram.org:443 "POST /bot**************************/getUpdates HTTP/1.1" 200 842
2017-12-23 16:30:22,311 [DEBUG] telegram.bot - bot(bot.py) : Getting updates: [828910873]
2017-12-23 16:30:22,312 [DEBUG] telegram.bot - bot(bot.py) : [<telegram.update.Update object at 0x7f5dc574cf28>]
2017-12-23 16:30:22,312 [DEBUG] telegram.bot - bot(bot.py) : Exiting: get_updates
2017-12-23 16:30:22,313 [DEBUG] telegram.ext.dispatcher - dispatcher(dispatcher.py) : Processing Update: **************************
2017-12-23 16:30:22,314 [DEBUG] telegram.ext.conversationhandler - conversationhandler(conversationhandler.py) : selecting conversation (-2333333333, 233333333333) with state None
2017-12-23 16:30:22,314 [DEBUG] CTBPlugin.plugins._1006_water_meter_filter - _1006_water_meter_filter(_1006_water_meter_filter.py) : Water meter processing
2017-12-23 16:30:22,315 [DEBUG] telegram.bot - bot(bot.py) : Entering: get_file
2017-12-23 16:30:22,471 [DEBUG] telegram.vendor.ptb_urllib3.urllib3.connectionpool - connectionpool(connectionpool.py) : https://api.telegram.org:443 "POST /bot********************/getFile HTTP/1.1" 200 142
2017-12-23 16:30:22,472 [DEBUG] telegram.bot - bot(bot.py) : {'file_id': '******************************', 'file_size': 204330, 'file_path': 'https://api.telegram.org/file/bot**********************************************************/photos/file_72.jpg'}
2017-12-23 16:30:22,473 [DEBUG] telegram.bot - bot(bot.py) : Exiting: get_file
2017-12-23 16:30:22,782 [DEBUG] telegram.vendor.ptb_urllib3.urllib3.connectionpool - connectionpool(connectionpool.py) : https://api.telegram.org:443 "GET /file/bot**********************************************************/photos/file_72.jpg HTTP/1.1" 200 204330
2017-12-23 16:30:23,318 [DEBUG] telegram.bot - bot(bot.py) : Entering: get_updates
2017-12-23 16:30:24,062 [DEBUG] CTBMain.utils - utils(utils.py) : tg -> qq: [{'type': 'image', 'data': {'file': '******************************************.jpg'}}]
2017-12-23 16:30:24,788 [DEBUG] CTBMain.message_persistence - message_persistence(message_persistence.py) : append tg_msg_id:726, qq_msg_id:395, qq_num:0, time:1514046624 to _0

感觉并没有问题的说

# coolq 的日志死活打不开

如果 qq 到 tg 图片转发正常,反过来不行,就加那个 hosts

gchat.qpic.cn,找一个国内记录扔过去
可以试试用网上工具多找点地址用 vps 试试哪个快
以及 docker 重启会清 hosts,建议找个开机脚本写命令加