Как добавить бота в канал?
Я использую свой бот для передачи важных новостей, но когда я использую sendMessage
для канала, я получаю следующую ошибку:
{"ok":false,"error_code":403,"description":"Error: Forbidden: bot is not a participant of the channel"}
В Журнал изменений они упоминают, что невозможно, чтобы клиент послал сообщение на канал, но тогда, что является другим способом сделать это?
Итак, вопрос в том, как добавить мой бот в канал?
Ответы
Ответ 1
Теперь все клиенты позволяют это делать, но это не очень просто.
В любом клиенте Telegram:
- Информация о канале Open (в заголовке приложения)
- Выберите
Administrators
- Добавить администратора
- В списке контактов не будет ботов, поэтому вам нужно его искать. Введите свое имя пользователя бота
- Нажав на него, вы сделаете это как администратор.
![введите описание изображения здесь]()
Ответ 2
Вот как я добавил бота на свой канал и настроил уведомления:
- Убедитесь, что канал общедоступный (вы можете установить его позже)
- Добавить администраторов > Введите имя пользователя бота и сделайте его администратором
- Ваш бот присоединится к вашему каналу
- установить идентификатор канала, установив URL-адрес канала, например
telegram.me/ whateverIWantAndAvailable
идентификатор канала будет
@whateverIWantAndAvailable
Теперь настройте своего бота для отправки уведомлений, прошивая сообщения здесь:
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable & text = Тест
сообщение, которое бот будет уведомлять: Тест
Я настоятельно рекомендую urlencode сообщения, например
https://api.telegram.org/botTOKENOFTHEBOT/sendMessage?chat_id= @whateverIWantAndAvailable & text = Тестирование %20if %20this %20works
в php вы можете использовать urlencode ( "Test if this works" );
в js вы можете кодироватьURIComponent ( "Проверить, работает ли это" );
Я надеюсь, что это поможет
Ответ 3
На данный момент:
- Только создатель канала может добавить бота.
- Другие администраторы не могут добавлять боты к каналам.
- Канал может быть открытым или закрытым (не имеет значения)
- боты могут быть добавлены только как админы, а не члены. *
Чтобы добавить бота на ваш канал:
-
нажмите на название канала:
![введите описание изображения здесь]()
-
нажмите на администраторов:
![введите описание изображения здесь]()
-
нажмите "Добавить администратора":
![введите описание изображения здесь]()
-
найдите своего бота как @your_bot_name и нажмите add: **
![введите описание изображения здесь]()
* На некоторых платформах, таких как mac native telegram client, может показаться, что вы можете добавить бота в качестве участника, но в конце он не будет работать.
** бот не обязательно должен находиться в вашем списке контактов.
Ответ 4
Используете ли вы правильный chat_id и включаете бот-маркер после "бота" в адресе? (Api.telegram.org/bot token/sendMessage)
Эта страница объясняет несколько вещей о посылке (в разделе "sendMessage" ) - основной материал, но я часто забываю об основах.
Цитата:
Чтобы использовать метод sendMessage, нам нужно использовать chat_id.
Прежде всего, сначала отправьте команду /start нашему боту через Клиент Telegram.
После отправки этой команды выполните команды getUpdates.
curl -s \
-X POST \ https://api.telegram.org/bot<token>/getUpdates \ | jq .
Ответ будет выглядеть следующим образом
{ "result": [
{
"message": {
"text": "/start",
"date": 1435176541,
"chat": {
"username": "yourusername",
"first_name": "yourfirstname",
"id": 65535
},
"from": {
"username": "yourusername",
"first_name": "yourfirstname",
"id": 65535
},
"message_id": 1
},
"update_id": 714636917
} ], "ok": true }
Нас интересует результат свойства .message [0].chat.id, save эту информацию в другом месте.
Обратите внимание, что это только пример, вы можете настроить некоторые автоматизация для обработки этой информации Теперь, как мы можем отправить сообщение? Это простой способ проверить этот фрагмент.
curl -s \
-X POST \ https://api.telegram.org/bot<token>/sendMessage \
-d text="A message from your bot" \
-d chat_id=65535 \ | jq .
Где chat_id - это часть ранее сохраненной информации.
Я надеюсь, что это поможет.