← Вернуться к списку тем

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

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

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

Подскажите код пожалуйста как правильно прописать

Ответы


  • iMakeBots [15.02.2021 в 17:35 → S.К]
    Делайте запрос на подписку сразу после старта бота - и в зависимости от результата выводите нужную информацию

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

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

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

    $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);
  • Жека [27.03.2022 в 16:54 → iMakeBots]
    Спасибо большое=)
  • Жека [27.03.2022 в 19:12 → iMakeBots]
    Еще раз спасибо, добавь донат на сайт=)