Проверка подписок пользователя
Этот метод позволяет проверить, подписался ли конкретный пользователь на рекламодателя (канал/бот/ресурс) через предоставленные вами ссылки, которые были получены ранее через Интеграцию блока обязательной подписки, либо вы можете настроить получение данных по всем ссылкам. Также добавлена возможность запросить подписки за определенный промежуток времени
Примечание: Для выполнения запросов к 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:
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-ответ с результатом проверки.
Пример успешного ответа:
{
"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 |
Статус проверки подписки:
|
code |
Integer |
Код результата:
|
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
.