Почему бот телеграммы node js разместил на Heroku ответ с кодом 403

Я пишу бота для телеграмм и использую библиотеку Telegraf. Я разместил своего бота на Heroku. Я настроил веб-перехватчики следующим образом:

app.telegram.setWebhook(`${URL}/bot${BOT_TOKEN}`);
app.startWebhook(`/bot${BOT_TOKEN}`, null, PORT);

Но в логах Heroku вижу at=info method=POST path="/bot" host=my-app.herokuapp.com request_id=a8f99998-5e9b-4fe4-9af6-9ac56e492ae3 fwd="149.154.167.206" dyno=web.1 connect=3ms service=4ms status=403 bytes=101 protocol=https

getWebhookInfo () также регистрирует last_error_message: 'Wrong response from the webhook: 403 Forbidden. Пробный тестовый пример из руководства Telegram Webhook с почтальоном также возвращает 403

РЕШЕНИЕ: я решил это, добавив Express к моему скрипту, как в этом пример


person ada    schedule 22.05.2017    source источник


Ответы (1)


Код ошибки 403 forbidden чаще всего возникает, если у вашего бота нет доступа к тому, что он пытается достичь. Примером может быть то, что вы вызвали sendmessage функцию с user_id, а не chat_id, или ваш бот не имеет доступа к чату (заблокирован / заблокирован).

Поскольку у вас немного не хватало кода, мой ответ мог оказаться не на 100% точным.

Изменить: вот ссылка на официальную документацию об ошибках телеграммы ошибки. Может быть, это может быть для вас дополнительной помощью.

person creyD    schedule 23.05.2017
comment
Я везде использую chat_id. А с опросом (локально) у меня бот работает. Также для меня это не совсем понятно - я думаю, что ошибка сбоку, когда телеграмма пытается отправить мне json, а не когда я пытаюсь написать пользователю ... - person ada; 23.05.2017
comment
Вы когда-нибудь пытались разместить свой сценарий на другом веб-сайте, а не на вашем сайте heroku? Или посмотрите здесь - person creyD; 23.05.2017
comment
Таким образом, это конфигурация heroku, которая вызывает ошибку. Поскольку я полагаю, что вы не можете изменить эту конфигурацию, я думаю, вам нужно найти другой хост. - person creyD; 23.05.2017
comment
@AdaraHv Вы пытались использовать другой сервер / хост? - person creyD; 24.05.2017
comment
Я обновил свой вопрос: решил его, добавив Express к моему скрипту - person ada; 25.05.2017