Пытаюсь настроить telegram бота. Использую
php-telegram-bot в laravel-проекте. Повесил вебхук с использованием сертификата, запускаю:
https://api.telegram.org/....../getWebhookInfo
, выдается ошибка:
{
"ok": true,
"result": {
"url": "https://..../api/telegram/hook/",
"has_custom_certificate": true,
"pending_update_count": 14,
"last_error_date": 1549036967,
"last_error_message": "Wrong response from the webhook: 301 Moved Permanently",
"max_connections": 40
}
}
Никак не могу разобраться, в чем проблема?
Начал проверять: редирект запросов с http на https стоят, в роутере указаны запросы только по post. Отправляю пост запрос через Postman с параметром message=test, в ответе выдается html код страницы.
Сам метод контроллера:
public function hook()
{
$commands_paths = [
app_path() . '/Telegram/Bots/Bitbd_BOT/Commands',
];
try {
// Create Telegram API object
$telegram = new Telegram($this->bot_api_key, $this->bot_username);
TelegramLog::initErrorLog(storage_path() . "/{$this->bot_username}_error.log");
TelegramLog::initDebugLog(storage_path() . "/{$this->bot_username}_debug.log");
TelegramLog::initUpdateLog(storage_path() . "/{$this->bot_username}_update.log");
// Add commands paths containing your custom commands
$telegram->addCommandsPaths($commands_paths);
$telegram->enableLimiter();
// Handle telegram webhook request
$telegram->handle();
} catch (TelegramException $e) {
echo $e->getMessage();
}
}
Роуты:
Route::group(['prefix' => 'telegram'], function () {
Route::any('hook/set', 'TelegramController@setWebhook');
Route::post('hook','TelegramController@hook');
});
Если написать:
Route::get('hook','TelegramController@hook');
, то из браузера можно открыть страницу, получить ответ, что передаваемые данные пусты, и запрос через Postman тоже нормально получает ответ. В чем может быть причина?