← Все статьи
Руководство

Ссылка-приглашение в группу WhatsApp через API: получение и сброс

Чтобы получить ссылку-приглашение в группу WhatsApp через UnifyPort, вызовите GET /v1/accounts/{account_id}/groups/invite-code, передав group_id в параметрах запроса. Ответ содержит data.invite_url и data.invite_code. Получение ссылки не означает её сброс. В WhatsApp администратор может деактивировать ссылку и создать новую, но публичная документация UnifyPort описывает чтение, а не операцию сброса.

Главное

  • Выбирайте аккаунт обмена сообщениями и группу вместе: код приглашения не является ID группы.
  • Выполняйте запрос на сервере и показывайте ссылку только уполномоченным сотрудникам.
  • Разделяйте получение, распространение, одобрение вступления и сброс ссылки.
  • После сброса в WhatsApp получите актуальную ссылку и замените копии, которыми управляет ваше приложение.

Что делает endpoint получения ссылки

Официальная справка WhatsApp о приглашении в группу описывает приглашение по ссылке и предупреждает, что получатели могут пересылать её другим людям. Там же описана возможность администратора деактивировать ссылку и создать новую. Это действие в приложении нельзя приравнивать к чтению через API.

Документация UnifyPort определяет более узкий контракт:

Входные или выходные данныеЗначение
account_id в путиПодключённый аккаунт, выполняющий операцию
group_id в queryИдентификатор группы у провайдера
data.invite_urlПолученный URL приглашения
data.invite_codeПолученный код приглашения, не ID диалога

В текущей матрице поддержки действий эта операция доступна для whatsapp, но не для LINE, Telegram, Zalo или отдельного провайдера whatsapp-protocol. Справка endpoint предупреждает, что у большинства провайдеров необходимы права администратора группы. Для этого сценария используйте разрешённый к работе аккаунт администратора WhatsApp и проверьте его текущие права. Доступ к API рабочего пространства сам по себе не даёт полномочий в группе.

Это неофициальный интерфейс для подключённого аккаунта, а не endpoint WhatsApp Cloud API.

Получение без раскрытия API-ключа

Сначала выберите группу нужного аккаунта через список групп. Он включает группы, в которые аккаунт вступил, даже если в них ещё не было переписки. Обработайте пагинацию и сохраните id выбранного элемента; для группы conversation_id равен id. Не определяйте цель только по отображаемому имени: оно может совпадать у разных групп.

Ниже приведён пример запроса, а не результат выполненного теста. В переменных окружения должны находиться серверный API-ключ, ID выбранного аккаунта и ID группы из списка:

curl --get \
  "https://api.unifyport.ai/v1/accounts/${UNIFYPORT_ACCOUNT_ID}/groups/invite-code" \
  -H "X-Api-Key: ${UNIFYPORT_API_KEY}" \
  --data-urlencode "group_id=${WHATSAPP_GROUP_ID}"

Идентификаторы провайдера могут содержать символы вроде @, поэтому параметры запроса нужно кодировать. Храните ключ на сервере: не переносите этот авторизованный запрос в браузерный JavaScript.

При успешном ответе прочитайте data.invite_url и data.invite_code. Не пытайтесь построить URL приглашения из ID группы. Если запрос завершился ошибкой или ожидаемая ссылка отсутствует, покажите ошибку либо недоступность, а не выдуманное значение.

Для диагностики сохраняйте HTTP-статус, код ошибки и серверный request_id. Руководство по трассировке запросов объясняет, как сохранять доказательства без записи всего тела ответа. Здесь оно содержит ссылку-приглашение, которой не место в аналитике и общих журналах приложения.

Разные намерения — разные элементы управления

Элемент интерфейсаНазначениеЧего он не означает
Показать текущую ссылкуПрочитать и показать ответ APIСоздана новая ссылка
Скопировать ссылкуСкопировать URL для разрешённого распространенияЧеловек уже вступил в группу
Проверить заявкиОткрыть процесс модерацииСсылка сброшена
Сбросить ссылкуНаправить администратора к действию в WhatsAppСуществует документированный вызов сброса UnifyPort

Перед показом или копированием проверяйте права сотрудника в вашем приложении. Не размещайте ссылку на публичных панелях, скриншотах для поддержки или в свойствах аналитических событий. Если результат кэшируется, помечайте его как ранее полученный, не обещая, что он всё ещё действителен.

Одобрение вступления — отдельный процесс. Если нужна модерация, используйте очередь заявок в группу WhatsApp, где список ожидающих заявок проверяется перед решением. Получение ссылки не включает режим одобрения и не одобряет заявителя.

Обновление копий после сброса в WhatsApp

Рассмотрим гипотетический сценарий: администратор считает, что приглашение распространилось слишком широко, и сбрасывает ссылку в WhatsApp. В вашем приложении при этом остаётся старый URL.

Рекомендуемый порядок действий:

  1. Приостановите распространение кэшированной ссылки на время действий администратора.
  2. Повторно получите ссылку для того же аккаунта и группы.
  3. Покажите свежий результат уполномоченному сотруднику для проверки.
  4. Замените ссылки, которыми управляет приложение, и QR-изображения, созданные из старого URL.
  5. Попросите владельцев других каналов распространения проверить свои копии.

Это рекомендации по эксплуатации, а не функция атомарной ротации. Публичная документация не определяет параметр сброса, endpoint сброса, время истечения ссылки или специальный webhook подтверждения сброса. Не добавляйте предполагаемые поля и не считайте отсутствие события доказательством неизменности ссылки. Если повторное чтение не удалось, оставьте распространение приостановленным или явно обозначьте неопределённость вместо незаметного возврата к старому кэшу.

Частые вопросы

Создаёт ли каждый вызов invite-code новую ссылку?

Документированная операция получает ссылку и код. Создание новой ссылки или ротация при каждом чтении не обещаны.

Можно ли передать invite_code как group_id?

Нет. Используйте ID группы провайдера, выбранной под подключённым аккаунтом. Код приглашения — отдельное возвращаемое значение.

Можно ли сбросить ссылку через этот API?

В текущей публичной документации такой операции нет. Используйте действие администратора в WhatsApp, затем снова получите актуальную ссылку.

Ошибка чтения означает, что группа удалена?

Нет. Проверьте HTTP-статус и подробности ошибки. get_group_invite_code_failed обозначает сбой получения на сервере или у вышестоящего сервиса, а не подтверждает удаление группы.

Следующий шаг и источники

Начните с реализации чтения по документации Get group invite link. Перед запуском проверьте выбор группы, недостаточные права, кодирование query, отсутствие секретных данных в логах и обновление копии после разрешённого сброса в WhatsApp. Это предлагаемые проверки, а не отчёт об уже проведённых тестах.

Источники проверены 2026-10-15:

UnifyPort API

Превратите интеграцию сообщений в стабильный продуктовый pipeline.

Начните с отправки через единый API, затем возвращайте входящие сообщения в бизнес-систему стандартными событиями.