Проверка подписок пользователя

Этот метод позволяет проверить, подписался ли конкретный пользователь на рекламодателя (канал/бот/ресурс) через предоставленные вами ссылки, которые были получены ранее через Интеграцию блока обязательной подписки, либо вы можете настроить получение данных по всем ссылкам. Также добавлена возможность запросить подписки за определенный промежуток времени

Примечание: Для выполнения запросов к API вам понадобится API ключ. Если у вас его еще нет, получите его согласно Шагу 1 в руководстве по Интеграции блока обязательной подписки.

Шаг 1. Формирование запроса

Отправьте POST-запрос на эндпоинт https://api.subgram.ru/get-user-subscriptions.

В заголовке (header) запроса необходимо передать ваш API ключ: Auth: ВАШ_API_КЛЮЧ

В теле запроса (body) передайте JSON объект со следующими параметрами:

Параметры запроса:
Параметр Тип Обязательный Описание
user_id Integer Да Уникальный идентификатор пользователя Telegram.
links Array[String] Нет Ссылки для подписки, полученная ранее от SubGram, статус которых нужно проверить.
start_date String Нет Начальная дата. Отображение списка спонсоров, подписка по которым была совершена не ранее данной даты
end_date String Нет Конечная дата. Отображение списка спонсоров, подписка по которым была совершена не позднее данной даты
Пример запроса с использованием cURL:
content_copy

curl -X POST https://api.subgram.ru/get-user-subscriptions \
-H "Auth: ВАШ_API_КЛЮЧ" \
-H "Content-Type: application/json" \
-d '{
      "user_id": 123456789,
      "links": ["https://t.me/joinchat/AAAA...","https://t.me/+sTfe3F..."]
      "start-date": "2025-01-20",
      "end-date": "2025-01-21"
    }'

Шаг 2. Обработка ответа сервера

Сервер вернет JSON-ответ с результатом проверки.

Пример успешного ответа:
content_copy

{
  "status": "ok",
  "code": 200,
  "message": "Информация о подписках получена",
    "additional": {
        "sponsors": [{
            "link": "https://t.me/+D15mR...",
            "status": "subscribed",
            "type": "channel",
            "resource_logo": "",
            "resource_name": ""
        }, {
            "link": "https://t.me/+GG-Pn...",
            "status": "unsubscribed",
            "type": "resourse",
            "resource_logo": "",
            "resource_name": ""
        }, {
            "link": "https://t.me/+NS59bh...",
            "status": "notgetted",
            "type": "channel",
            "resource_logo": "https://img.subgram.ru/resources_logo/HgtbNRr123dw.jpg",
            "resource_name": "Название канала"
        }]
    }
}
Параметры ответа:
Параметр Тип Описание
status String Статус проверки подписки:
  • ok - Информация успешно получена.
  • error - Произошла ошибка при проверке (см. code и message).
code Integer Код результата:
  • 200 - OK. Запрос успешно обработан.
  • 400 - Bad Request. Ошибка в запросе.
  • 401 - Unauthorized. Передан невалидный API ключ в заголовке `Auth`.
  • 404 - Not Found. Запись о подписке/подписках за данным пользователем не обнаружена
  • 500 - Internal Server Error. Внутренняя ошибка на сервере SubGram.
message String Текстовое сообщение, поясняющее статус или ошибку.
link String Ссылка рекламодателя.
status String Статус подписки пользователя.
  • subscribed - Пользователь подписан по данной ссылке.
  • unsubscribed - Пользователь не подписан по данной ссылке.
  • notgetted - Пользователь подписан на ресурс, но подписка не засчитана именно по данной ссылке (возможно, подписался ранее или по другой ссылке).
  • type String Тип ресурса (рекламируемый объект).
  • channel - Канал/чат.
  • bot - Бот.
  • resourse - Любой другой сторонний ресурс.
  • resource_logo String Логотип канала/чата/бота.
    resource_name String Название канала/чата/бота.
    Возможные ошибки:

    В случае ошибки (code не равен 200), поле status будет содержать "error", а поле message предоставит дополнительную информацию. Подробное описание кодов ошибок смотрите в таблице параметров ответа выше.

    Рекомендуется проверять code перед тем, как анализировать status.