SpiderPigAndCat
@SpiderPigAndCat
занимаюсь салообразованием

Каким образом реализуется подписка на новости сайта через телегу?

Есть несколько сайтов на вп. Например про собак, кошек, игры, картины. Как можно сделать так, чтоб посетитель заходил на сайт, решает что ему нравится и он хочет получать уведомления о новых постах в телегу себе. Чтоб он подписался на условный сайт с кошками и сайт с собаками, и как выйдет новая статья ему это кидалось в телегу (заголовок и картинка), чтоб он переходил на сайт для полного прочтения.

Может сделать канал где человек сам будет решать с каких сайтов из представленных получать новости?
  • Вопрос задан
  • 98 просмотров
Решения вопроса 1
Расписываю алгоритм как это делал я:
1. Создается бот.
2. Если пользователь хочет подписаться на что-то, он должен авторизоваться в боте.
3. Создаете ему ключ, создаете команду, например /auth {key}, где key - ключ пользователя.
4. Бот принимает сообщение с ключем, выделяет его и по данному ключу находит id пользователя у вас на сайте, для него сохраняет полученный от этого пользователя chat_id (когда пользователь отправляет вам сообщение в первый раз).
5. Все, теперь вы храните chat_id пользоваетелей и можете любому из них отправлять сообщения ботом.

Следующая задача: выбирать что отправлять и как отправлять.

6. Пользователь подписывается например, на категорию. Вы должны в таблице, например user_subscribes хранить user_id и category_id. Затем когда в категории с id = category_id у вас постится публикация, из этой таблицы вы берете все user_id, с category_id = категории, в которой появился пост. Если такие пользователи есть, то по их user_id получаете chat_id, на данные chat_id через цикл, с паузой (апи телеграма позволяет только определенное кол-во запросов в минуту), отправляете сообщения, с помощью метода api телеграмма, sendMessage по-моему.
7. На этом все. Ваш бот будет отправлять сообщения только тем, кто подписывался на данные материалы.

Делал подобный функционал давно на laravel, возможно сейчас есть более адекватные варианты.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы