Канал Gratio в Telegram или MAX умеет искать публичные каналы и группы, смотреть их до вступления, вступать, а в своих группах — разбирать заявки и выпускать ссылки-приглашения. В WhatsApp и почте эти методы отвечают 501.
| Метод | Что делает |
|---|---|
| searchChats | ищет каналы, группы, людей и ботов по названию или нику |
| getChatPreview | показывает чат по ссылке, нику или приглашению до вступления |
| joinChat | вступает в группу или подписывается на канал |
| getJoinLimits | сколько вступлений осталось и когда следующее |
| getSimilarChannels | похожие каналы |
| getJoinRequests | заявки на вступление в вашу группу или канал |
| answerJoinRequest | принять или отклонить заявку |
| createInviteLink | дополнительная ссылка-приглашение (Telegram) |
| revokeInviteLink | новая основная ссылка вместо старой |
| leaveGroup | выйти из группы или отписаться от канала |
После вступления
- Лента идёт как есть: все новые сообщения чата приходят уведомлениями, как в любой группе, где состоит аккаунт.
chatIdв них — id группы или канала. - То, что было в чате до вступления, в ленту не попадает. Прочитайте это методом getChatHistory.
- Посты канала приходят обычными входящими с
chatIdканала. В MAX отправителя у поста нет. - Заявка ушла админу (
status: "requested") — после одобрения в Telegram придёт groupEventparticipantJoinedByLinkсself: true, в MAX посты канала начнут приходить в ленту.
Чтение без вступления
У публичного канала или группы (public: true в превью) историю можно читать, не вступая: вступление не нужно и не происходит.
| Площадка | Что работает без вступления |
|---|---|
| Telegram | getChatHistory, getMessage, downloadFile |
| MAX | getChatHistory, getMessage |
Сначала откройте чат через getChatPreview или найдите через searchChats — так канал узнаёт о чате. После перезапуска канала откройте превью снова.
Лимиты
Мессенджеры считают массовые вступления спамом и могут ограничить аккаунт. Gratio держит темп заметно ниже порога риска и при превышении отказывает сам, не обращаясь к площадке. Не обходите темп параллельными запросами: лимит общий на канал.
Telegram
| Что | Сколько на канал | При превышении |
|---|---|---|
| Вступление | не чаще раза в минуту, до 20 в час и 40 в сутки | 429 too_frequent + Retry-After |
| Поиск, разбор ников и ссылок, похожие каналы | 60 в час; joinChat по нику или ссылке тратит одну |
429 too_frequent + Retry-After |
Проверка приглашений t.me/+… |
10 в час; ответ хранится 5 минут — «посмотреть и вступить» тратит одну проверку | 429 too_frequent + Retry-After |
| Каналы и супергруппы аккаунта | 500, с Telegram Premium — 1000 | 400 chats_too_much |
| Пауза от Telegram | сколько попросил Telegram, не меньше минуты; до её конца запросов к Telegram нет | 469 rate_limited + Retry-After |
MAX
| Что | Сколько на канал | При превышении |
|---|---|---|
| Вступление | не чаще раза в минуту, до 20 в час и 40 в сутки | 429 too_frequent + Retry-After |
| Поиск, превью, похожие каналы | 60 в час; joinChat тратит одну — перед вступлением Gratio смотрит чат |
429 too_frequent + Retry-After |
| Группы и каналы аккаунта | MAX предела не публикует | — |
| Пауза от MAX | не меньше минуты; до её конца вступлений нет | 469 rate_limited + Retry-After |
Ответ already (аккаунт уже в чате) лимит вступлений не тратит: запроса на вступление нет. В MAX так же — заявка, которая уже ждёт админа: ответ requested.
Сколько вступлений уже было и когда можно следующее — getJoinLimits.
Отказы
| Код | code |
Когда |
|---|---|---|
400 |
validation |
нет link, chatId или query; неизвестный вид в types |
400 |
bad_link |
ссылка или ник не этой площадки |
400 |
not_found |
чат не найден или закрыт |
400 |
not_a_chat |
по ссылке человек или бот, а не группа или канал |
400 |
not_a_channel |
похожие бывают только у каналов |
400 |
not_a_group |
для заявок и ссылок передан личный чат |
400 |
invite_invalid |
приглашение недействительно или отозвано |
400 |
invite_required |
в эту группу вступают только по приглашению |
400 |
private |
Telegram: чат закрыт или аккаунт в нём заблокирован |
400 |
chat_full |
в чате нет мест |
400 |
chats_too_much |
Telegram: аккаунт уже в 500 каналах и супергруппах (с Premium — в 1000) |
400 |
admin_required |
нужны права администратора |
400 |
query_too_short |
пустой или слишком короткий запрос |
400 |
bad_invite |
Telegram: у ссылки с одобрением не бывает лимита входов |
400 |
revoke_failed |
площадка не выдала новую ссылку |
402 |
payment_required |
канал на паузе за неоплату: вступать и менять ссылки нельзя |
429 |
too_frequent |
темп Gratio, см. таблицы выше |
469 |
rate_limited |
площадка попросила паузу |
501 |
not_supported |
WhatsApp и почта; в MAX — createInviteLink и getSimilarChannels без chatId |
answerJoinRequest на отказ площадки отвечает 200 с false и причиной, как методы групп. Общие правила — в статье Ответы и ошибки.
MAX и Telegram
| Telegram | MAX | |
|---|---|---|
searchChats |
сначала чаты и контакты аккаунта, потом глобальный поиск; до 100 | глобальный поиск, как строка поиска MAX; до 50 |
| Ссылки | @ник, t.me/ник, ссылка на пост, приглашение t.me/+код |
@ник, max.ru/ник, приглашение max.ru/join/код |
| Превью по приглашению в чужой чат | chatId: null: адрес откроется после вступления |
chatId и название сразу |
| Вступление по заявке | группы и каналы | только каналы |
| Без ника | обычная группа — только по приглашению | закрытая группа — только по приглашению |
getJoinLimits.limit |
500, с Premium — 1000 | null |
getSimilarChannels без chatId |
рекомендации аккаунту | 501 |
Заявки: date и about |
время и текст заявки | null и пустая строка |
createInviteLink |
есть | 501: у чата MAX одна ссылка |
revokeInviteLink |
новая основная ссылка, дополнительные остаются | новая ссылка, старая сразу отвечает invite_invalid |
verified |
отметка Telegram | отметка «официальный» |
warning, linkedChatId |
scam или fake; обсуждение канала |
всегда пустые |
- MAX. После отклонения заявки подать её снова MAX не даёт, и в
getJoinRequestsеё уже нет. Отклоняйте, только если точно не хотите пускать. - MAX. Ссылка-приглашение может не работать с самого начала — приложение MAX тоже пишет, что ссылка устарела. Ответ —
invite_invalid, лимит вступлений не тратится.
Что дальше
- searchChats — найти канал или группу.
- joinChat — вступить.
- groupEvent — уведомления о вступлениях и заявках.
