Я уже прочитал несколько вопросов об API бота, но не могу найти решение.
Мой бот отлично работает без установки вебхука и обработки /getUpdates. Но я не могу заставить его работать с настройкой "https://www.domain.com/page.php" как веб-перехватчик.
У меня есть виртуальный хостинг за гибким SSL-сертификатом Cloudflare, и браузеры не предупреждают об этом, поэтому я предполагаю, что он работает нормально.
Я пытаюсь передать POST Telegram в файл, чтобы понять, нужен ли веб-перехватчику другой анализ, но он пуст и не может видеть ssl_acces.log, поэтому я даже не могу смотреть, доходит ли Telegram до страницы...
Вот фрагмент:
$message = json_decode(file_get_contents('php://input'), true);
file_put_contents('telegram.txt', var_dump($message));
Что я делаю не так? Спасибо.
[РЕШЕНИЕ]
Способ входа:
$debug = file_get_contents('php://input');
$fp = fopen('debug.txt', 'w');
fwrite($fp, $debug);
fclose($fp);
И решение в том, что вебхук надо ставить без wwww:/setwebhook?url=https://domain.com/page.php
$debug = file_get_contents('php://input'); $fp = fopen('debug.txt', 'w'); fwrite($fp, $debug); fclose($fp);
- person edumgui   schedule 07.07.2015$message = json_decode($_POST, true); file_put_contents('telegram.txt', $message);
почему бы вам не попробовать так? Веб-хук Telegram, похоже, делает запрос POST. - person Ugur   schedule 07.07.2015{"ok":false,"error_code":409,"description":"Error: Conflict: another webhook is active"}
- person edumgui   schedule 07.07.2015setWebhook
запрос. Также есть примечание о самоподписанных сертификатах.We currently do not support self-signed certificates.
Я не думаю, что SSL Cloudflare является самоподписанным и недействительным для Telegram. Вы можете попробовать установить другой URL-адрес без SSL и проверить, попадает ли Telegram по этому URL-адресу. Таким образом, вы сможете понять, речь идет о ssl или Cloudflare. Также вы уверены, что делаете правильный шаг, чтобы активировать веб-хук? - person Ugur   schedule 08.07.2015{"ok":false,"error_code":400,"description":"Error: Bad webhook: Error: [webhook:[protocol:HTTP][host:www.domain.com][port:80][query:\/telegrambot.php]]:Error: HTTPS url must be provided for webhooks"}
Единственным триггером веб-перехватчика является отправка сообщений боту. Я пытался спросить Telegram CM в Твиттере, но без ответа... - person edumgui   schedule 08.07.2015Ports currently supported for Webhooks: 443, 80, 88, 8443.
Может ли документация устареть? Думаю, лучше всего на этот вопрос смогут ответить люди из Telegram. - person Ugur   schedule 08.07.2015