lgg / vk-to-telegram-bot

Bot for auto-reposting posts from VK to Telegram channel
129 stars 21 forks source link

В телеграм-группу пересылаются только изображения #52

Closed marchenkovma closed 5 years ago

marchenkovma commented 5 years ago

Здравствуйте. В телеграм-группу из группы в ВК пересылаются только изображения. Текст, который прикреплен к посту в ВК, не пересылается, какие бы настройки я не выставлял в конфиге. Использую следующий файл конфига:

private static $configs = [
        [
            //VK
            "vk" => "-86706093",
            "vk_token" => "bef***********de3",
            //Telegram
            "t_key" => "6df*******fer",
            "t_name" => "dogzone_testbot",
            "t_chat" => "dog_zone",
            "messageSend" => [
                "disable_web_page_preview" => false,
                "disable_notification" => false
            ],
            //Bot-manager settings
            //Bot-manager reposting params(modes)
            "extended" => [
                "active" => true,
                "needLinkToVKPost" => true,
                "needFromText" => [
                    "withLink" => true,
                    "prepend" => true,
                    "customName" => "Потеряшки Гомель"
                ],
                "resendAttachments" => true,
            ],
            "needPostPreview" => ignored,
            //Bot-manager internal functions params
            "language" => "ru",
            "textManager" => [
                "aggressive" => true,
                "limit" => 3
            ],
            "vkLinks" => [
                "show" => true,
                "symbols" => [
                    "open" => "[",
                    "close" => "]"
                ]
            ]
        ],
    ];

Группа в ВК vk.com/club86706093, телеграм-группа: t.me/dog_zone.

lgg commented 5 years ago

@marchenkovby к сожалению, я до сих пор не запилил нормальный логгер, поэтому будем разбираться немного костыльно. Попробую сам запустить, возможно что-то в API поменялось.

marchenkovma commented 5 years ago

@lgg Спасибо. Буду ждать.

lgg commented 5 years ago

@marchenkovby у меня норм постит с текстом.

Стоп, у Вас в конфиге:

   "needPostPreview" => ignored,

Вообще должно падать с ошибкой, вроде как. Но в целом должно быть, true, если нужен текст.

marchenkovma commented 5 years ago

Сделал:

   "needPostPreview" => true,

Всё равно получаю в группе в телеграме только фотографию. В какую сторону копать?

Я правильно понимаю, что если в группе в ВК к посту прикреплена фотка и текст, то при определенных настройках конфига, я могу получить и текст и фотку?

Может какие-то ограничения мое созданного токена для API VK? Что-то там сделал не так, хотя создавал standalone приложение и оттуда брал ключ.

У меня группа в телеграме, может быть нужно обязательно канал?

lgg commented 5 years ago

@marchenkovby

если в группе в ВК к посту прикреплена фотка и текст, то при определенных настройках конфига, я могу получить и текст и фотку?

Да, выглядеть это должно примерно вот так. Или как в каналах примерах из README: https://t.me/hacklist https://t.me/frontendraccoon

image

У меня группа в телеграме, может быть нужно обязательно канал?

Нет, главное, чтобы у бота было право на написание постов, но если он постит фотки - значит права есть.

Может какие-то ограничения мое созданного токена для API VK? Что-то там сделал не так, хотя создавал standalone приложение и оттуда брал ключ.

Нет, так как VK API либо возвращает пост целиком, либо не возвращает вообще.

lgg commented 5 years ago

@marchenkovby а в log.txt что пишет?

Костыльный вариант дебага:

в файл app/Manager.php на 264 строку добавить print_r($message); после этого сделать новый пост и запустить бота в ручном режиме php index.php - и вывод смотреть уже надо будет.

marchenkovma commented 5 years ago

Файл log.txt:

[2019.02.17-23:34:06]: Add 5 new posts: 32,33,34,35,36 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1
[2019.02.17-23:40:08]: Add 5 new posts: 53680,53681,53700,53711,53688 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1
[2019.02.18-01:07:03]: Add 1 new posts: 53730 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688
[2019.02.18-08:20:10]: Add 1 new posts: 53735 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730
[2019.02.18-13:51:05]: Add 1 new posts: 53742 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735
[2019.02.18-17:57:06]: Add 1 new posts: 53751 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742
[2019.02.18-18:52:10]: Add 2 new posts: 53754,53755 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751
[2019.02.18-19:23:05]: Add 1 new posts: 53759 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755
[2019.02.18-19:24:02]: Add 1 new posts: 53760 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759
[2019.02.18-20:52:05]: Add 1 new posts: 53763 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760
[2019.02.18-20:59:04]: Add 1 new posts: 53766 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763
[2019.02.18-22:31:05]: Add 1 new posts: 53772 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766
[2019.02.18-23:35:05]: Add 1 new posts: 53773 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772
[2019.02.19-16:07:03]: Add 1 new posts: 53802 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773
[2019.02.19-16:09:02]: Add 1 new posts: 53804 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802
[2019.02.19-16:11:04]: Add 1 new posts: 53805 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804
[2019.02.19-16:12:05]: Add 1 new posts: 53807 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805
[2019.02.19-16:13:03]: Add 1 new posts: 53808 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807
[2019.02.19-17:22:03]: Add 1 new posts: 53817 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808
[2019.02.19-17:23:02]: Add 1 new posts: 53818 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817
[2019.02.19-17:25:10]: Add 1 new posts: 53820 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818
[2019.02.19-17:41:03]: Add 1 new posts: 53825 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818,53820
[2019.02.19-19:49:05]: Add 1 new posts: 53834 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818,53820,53825
[2019.02.19-20:37:02]: Add 1 new posts: 53841 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818,53820,53825,53834
[2019.02.19-22:47:06]: Add 1 new posts: 53846 | from /home/mysuperd/public_html/vk-to-telegram-bot/last.json: -1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818,53820,53825,53834,53841
[2019.02.20-04:06:03]: Fail loading data from VK: -86706093 More info: {"response":{"count":0,"items":[]}}

Файл last.json:

{"dogzone_testbot_-178467516":-1,"dog_zone_-178467516":[-1,32,33,34,35,36],"dog_zone_-86706093":[-1,53680,53681,53700,53711,53688,53730,53735,53742,53751,53754,53755,53759,53760,53763,53766,53772,53773,53802,53804,53805,53807,53808,53817,53818,53820,53825,53834,53841,53846]}

Приду с работы и сделаюprint_r($message);.

marchenkovma commented 5 years ago

На 264 строку добавил print_r($message); Сделал новый пост в группе в ВК и запустил в ручном режиме php. Результат:

<!-- saved from url=(0029)http://marchenkov.by/log.html -->
<html><head><meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head><body>

Тестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовоетовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое товое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое сообщениеТестовое

Комментировать в ВК: https://vk.com/wall-178467516_39</body></html>
lgg commented 5 years ago

Проблема в https://github.com/lgg/vk-to-telegram-bot/blob/f94fc0cb8e8c7d873e14d724b9a0f540dcdb636d/app/Manager.php#L201 Сервер Telegram API кидает ответ:

{"ok":false,"error_code":400,"description":"Bad Request: Can't parse message text: Can't find end of the entity starting at byte offset 89"}

Что странно, потому что ранее установленная версия на той же самой группе - постит отлично. Хотя версии vk-to-telegram-bot и php-telegram-bot/core последние. Что за магия - буду разбираться. Пока поставил принудительное HTML или в ручную добавлять из конфига.

lgg commented 5 years ago

@marchenkovby заработало?

marchenkovma commented 5 years ago

@lgg да, заработало. Огромное спасибо!

Подскажите, а как использовать параметр customName?

lgg commented 5 years ago

@marchenkovby хех, спасибо. Нашёл ещё один баг. Криво сделал проверку и по сути customName был недостижим.

lgg commented 5 years ago

@marchenkovby с последним коммитом должно быть ок, вроде поправил. Если есть возможность - обновите код самого бота, пожалуйста(там только файл Manager.php менял, так что конфиг не затронет) - и отпишитесь: заработает/нет.

marchenkovma commented 5 years ago

@lgg обновил! customName работает. Но всё равно что-то не пойму с настройкой расширенного режима.

У меня такой конфиг:

 private static $configs = [
        [
            //VK
            "vk" => "-178467516",
            "vk_token" => "b9*********654e3",
            //Telegram
            "t_key" => "642************qw9Dofpco",
            "t_name" => "dogzone_testbot",
            "t_chat" => "dog_zone",
            "messageSend" => [
                "disable_web_page_preview" => false,
                "disable_notification" => false
            ],
            //Bot-manager settings
            //Bot-manager reposting params(modes)
            "extended" => [
                "active" => true,
                "needLinkToVKPost" => true,
                "needFromText" => [
                    "withLink" => false,
                    "prepend" => true,
                    "customName" => "Потеряшки Гомель TEST"
                ],
                "resendAttachments" => true,
            ],
            "needPostPreview" => ignored,
            //Bot-manager internal functions params
            "language" => "ru",
            "textManager" => [
                "aggressive" => false,
                "limit" => 3
            ],
            "vkLinks" => [
                "show" => true,
                "symbols" => [
                    "open" => "[",
                    "close" => "]"
                ]
            ]
        ],
    ];

В тестовой группе в ВК создаю такой пост: ex1

В тестовой телеграм-группе получаю: ex2

Как мне получить в телеграм-группе дополнительно ссылку на этот пост в ВК, на группу в ВК и текст "Комментировать тут" как в простом режиме?

Как добавить в конфиг ещё одну группу ВК?

lgg commented 5 years ago

@marchenkovby на ближайших праздниках постараюсь сесть доделать несколько моментов в боте. В том числе, чтобы ссылки на ВК нормально вставлялись, из-за изменения типа парсинга сообщений - слетело.

lgg commented 5 years ago

roadmap:

marchenkovma commented 5 years ago

@lgg Спасибо. Буду ждать.