Прошу помощи в настройке телеграм-бота на виртуальной машине под Ubuntu-server 22.
Скрипт пробовал запускать на двух виртуалках (UBUNTU и AstraLinux). Ошибка одинаковая, возвращает JSON:
{“ok”: false, “error_code”:403, “Forbidden: bots can`t send message to bots”}
При запросе getMe выдаёт: {“ok”:true,“result”:{“id”:6973258213,“is_bot”:true,“first_name”:“YodoNetCheckBot”,“username”:“AleksanteriBot”,“can_join_groups”:true,“can_read_all_group_messages”:false,“supports_inline_queries”:false}}
Какие может быть настройки бота в @BotFather нужно сделать? или что проверить? Каким образом?
Ошибка “403: Forbidden: bots can’t send message to bots” указывает на то, что вы пытаетесь отправить сообщение на аккаунт бота. Боты в Telegram не могут отправлять сообщения другим ботам, они могут отправлять сообщения только пользователям.
Вот шаги, которые нужно предпринять, чтобы проверить и настроить ваш Telegram-бот:
-
Проверьте токен бота:
- Убедитесь, что вы используете правильный токен, выданный вам @BotFather. Токен должен быть точным, без лишних пробелов и символов.
-
Настройки в @BotFather:
- Убедитесь, что ваш бот может присоединяться к группам. Для этого отправьте команду
/setjoingroups
вашему @BotFather и выберите “Enable”.
- Убедитесь, что ваш бот имеет права отправлять сообщения пользователям. В противном случае, бот не сможет отправлять сообщения.
-
Проверьте код:
- Убедитесь, что вы отправляете сообщения на правильный user_id. Это должен быть ID пользователя, а не другого бота.
Вот пример базового скрипта на Python для отправки сообщения пользователю:
import requests
TOKEN = 'YOUR_TELEGRAM_BOT_TOKEN'
CHAT_ID = 'USER_CHAT_ID'
MESSAGE = 'Hello, this is a test message from your bot!'
url = f'https://api.telegram.org/bot{TOKEN}/sendMessage'
payload = {
'chat_id': CHAT_ID,
'text': MESSAGE
}
response = requests.post(url, json=payload)
print(response.json())