Как проверить на подписку на канал

← К списку тем

Здравствуйте есть запрос на проверку подписки на канал
https://api.telegram.org/bot[токен_бота]/getChatMember?chat_id=[айди_канала]&user_id=[айди_пользователя]

Но как прописать чтобы бот при старте проверял подписку и выдавал разные сообщения
Если подписан одно ,а если не подписан другое ?

Подскажите код пожалуйста как правильно прописать
Степан Казбекович ✪ 15.02.2021 в 17:31

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Делайте запрос на подписку сразу после старта бота - и в зависимости от результата выводите нужную информацию

    У вас наверное есть уже какая то конструкция бота - реализуйте в ней. Или если не получиться выложите код - хотябы часть старта бота.
    iMakeBots 15.02.2021 в 17:35
    • Вот я и не знаю как прописать правильно проверку
      Степан Казбекович ✪ 15.02.2021 в 17:42
      • Вы сделайте запрос на пользователя который точно есть в подписчиках, и на пользователя которого точно нет в подписчиках (можете просто набор цифр передать вместо реального id)

        Запишите результат в файл например и сравните их - далее по отличительным свойствам составьте условие и выполняйте необходимый код.
        iMakeBots 15.02.2021 в 17:45
        • Я сделки по ссылке запрос выдает результат а вот как в боте при старте прописать незнаю
          Степан Казбекович ✪ 15.02.2021 в 18:04
          • В google PHP JSON
            например https://stackoverflow.com/questions/5868721/read-json-data-using-php
            amun ra 02.03.2021 в 15:50
  • Добрый день, разобрались? Точно также как и вы не могу реализовать
    Жека 27.03.2022 в 15:23
    • При старте бота пользователем вам прилетает его chat_id
      Делайте запрос через метод getChatmember

      где chat_id - это id канала в котором надо проверить (он обычно отрицательный)
      user_id - это chat_id пользователя
      iMakeBots 27.03.2022 в 15:29
      • Прошу можно написать как это выглядит в коде=)
        Жека 27.03.2022 в 15:33

      • $token_bot = 0; // ваш токен бота
        $chanel_id = 0; // id канала
        // парсим данные которые пришли от webhook
        $response = json_decode(file_get_contents('php://input'), false);
        // делаем запрос проверку пользователя
        $request = file_get_contents("https://api.telegram.org/bot" . $token_bot . "/getChatMember?chat_id=" . $chanel_id . "&user_id=" . $response->message->chat->id);
        // записываем ответ в лог файл
        file_put_contents("./log.txt", $request, LOCK_EX);
        iMakeBots 27.03.2022 в 15:47
        • Спасибо большое=)
          Жека 27.03.2022 в 16:54
        • Еще раз спасибо, добавь донат на сайт=)
          Жека 27.03.2022 в 19:12