Особенности работы с контактами при помощи lid#
WhatsApp* постепенно отказывается от использования номеров телефонов в качестве идентификатора чата. Мы заранее создаем условия для работы с нашей API. Архитектура и логика взаимодействия с API осталась прежней, однако имеется ряд отличий ввиду особенностей работы мессенджера c контактами.
Бета-версия
Функциональность находится в режиме бета-версии. Функции могут быть изменены, а также могут работать нестабильно.
Изменения WhatsApp затронут всех пользователей, поэтому необходимо быть готовыми к грядущим переменам. В данной статье рассмотрим какие изменения произойдут в API и что нужно будет сделать, чтобы продолжать эффективно использовать WhatsApp API не теряя связи с вашими клиентами.
Содержание#
- Как раньше отправлялись сообщения по номеру телефона
- Постепенный отказ от использования префикса
@c.us - Отправка сообщений с помощью @lid
- Получение журналов и вебхуков с @lid
- Смена lid
- Необходимость перехода на @lid
Как раньше отправлялись сообщения по номеру телефона#
Для отправки сообщений используйте идентификатор чата. В GREEN-API поддерживается два типа чатов - личный чат и групповой чат.
Ранее в теле запроса метода достаточно было указать номер получателя с префиксом @c.us, чтобы передать текстовое сообщение:
{
"chatId": "1111111111@c.us",
"message": "Привет, Иван Царевич"
}
Постепенный отказ от использования префикса @c.us#
Во всех методах отправки сообщений, идентификаторе чата, методах работы с журналами, а также в вебхуках префикс @c.us используется для обратной совместимости. Теперь вместо него вы будете получать идентификатор чата в виде @lid.
Работа с групповыми чатами
Для работы с групповыми чатами логика работы с API останется прежней. Подробнее о работе с идентификатором группового чата можно ознакомиться в нашей документации.
Мы настоятельно рекомендуем переходить на использование идентификатора личного чата @lid.
Отправка сообщений с помощью @lid#
В целом отправка сообщений по @lid отличается от отправки по номеру телефона тем, что идентификатор чата необходимо предварительно получать методом CheckWhatsapp или из переписки с пользователем.
Если идентификатор чата неизвестен, сначала используйте метод CheckWhatsapp, получите значение chatId для отправки сообщений методом SendMessage и другими методами.
Отправка сообщения с помощью @lid
{
"chatId": "120650379300963@lid",
"message": "Привет, Иван Царевич"
}
В настоящее время в журналах и вебхуках будет приходить номер телефона пользователя, даже если была отправка по @lid.
Получение журналов и вебхуков с @lid#
Бета-версия
Функциональность находится в режиме бета-версии. В данный момент получение @lid с помощью журналов и вебхуков не гарантируется.
В личном кабинете в настройках инстанса необходимо установить в поле Использовать идентификаторы чатов значение Да, затем нажать на кнопку
Сохранить изменения. Либо с помощью метода SetSettings указав в поле enableLidMode значение yes.
Для применения настроек необходимо разлогинить ваш инстанс, а затем снова авторизовать по QR или по коду. Для получения журналов и вебхуков необходимо включить уведомления в личном кабинете или с помощью метода SetSettings.
Проверьте методом GetSettings что настройки инстанса применились, для этого проверьте значение поля enableLidMode - yes.
Если всё настройки применились, то в журналах в полях chatId и senderId будет записан номер @lid, уникальный для каждого инстанса.
Пример журнала для последних входящих сообщений с @lid
{
"type": "incoming",
"idMessage": "ACB2EA51BD0573D8F64E480908C6017A",
"timestamp": 1779704763,
"typeMessage": "textMessage",
"chatId": "155508384256027@lid",
"textMessage": "Привет, я использую GREEN-API для отправки сообщения в WhatsApp!",
"senderId": "155508384256027@lid",
"senderName": "Иван Царевич",
"senderContactName": "",
"deletedMessageId": "",
"editedMessageId": "",
"isEdited": false,
"isDeleted": false
},
{
"type": "incoming",
"idMessage": "AC710B072D589F5583ADF9E4C904330E",
"timestamp": 1779703495,
"typeMessage": "textMessage",
"chatId": "155508384256027@lid",
"textMessage": "Привет! Я использую GREEN-API!",
"senderId": "155508384256027@lid",
"senderName": "Иван Царевич",
"senderContactName": "",
"deletedMessageId": "",
"editedMessageId": "",
"isEdited": false,
"isDeleted": false
}
Пример вебхука входящих сообщений с @lid
{
"typeWebhook": "incomingMessageReceived",
"idMessage": "AC162054DB255E4CF2FBD5C559089191",
"instanceData": {
"idInstance": 1101111111,
"wid": "79876543210@c.us",
"typeInstance": "whatsapp"
},
"timestamp": 1588091580,
"senderData": {
"chatId": "155508384256027@lid",
"sender": "155508384256027@lid",
"senderName": "Иван",
"senderContactName": "",
"chatName": "Иван Царевич"
},
"messageData": {
"typeMessage": "textMessage",
"textMessageData": {
"textMessage": "Привет, я использую GREEN-API для отправки сообщения в WhatsApp!"
}
}
}
Смена lid#
В редких случаях чат может переместиться с одного lid на другой. Происходит это нечасто: на аккаунте со 100 чатами таким может оказаться один чат.
Смена lid происходит на стороне мессенджера и не связана:
- со сменой номера телефона пользователя;
- с переносом аккаунта между Meta Business Manager и WhatsApp;
- с какими-либо действиями пользователя или вашей интеграции.
WhatsApp сообщает нам о смене идентификатора, и мы сохраняем новый lid на своей стороне. Новый идентификатор возвращается в методах GetChats и GetContacts в поле newChatId.
Поле newChatId приходит в ответе только тогда, когда для пользователя уже есть новый lid. Если нового lid нет, то поля в ответе не будет.
Пример ответа метода GetContacts с новым lid
[
{
"id": "138788093320001@lid",
"name": "Кощей Бессмертный",
"contactName": "Кощей Бессмертный Работа",
"type": "user",
"newChatId": "138788093320002@lid"
}
]
Пример ответа метода GetChats с новым lid
[
{
"archive": false,
"id": "138788093320001@lid",
"ephemeralExpiration": 0,
"ephemeralSettingTimestamp": 0,
"name": "Кощей Бессмертный",
"type": "user",
"unreadCount": 0,
"newChatId": "138788093320002@lid"
}
]
Важно
Новый lid появляется в ответе методов GetChats и GetContacts не всегда сразу - поле newChatId может появиться позже или после каких-либо действий пользователя. Поэтому как только вы увидели newChatId, сразу замените сохранённый у вас идентификатор чата на новый и в дальнейшем обращайтесь к чату только по нему. Продолжать работу по старому lid не рекомендуется.
Отправка сообщения по старому lid
Если вы отправите сообщение по старому lid, а новый lid уже доступен, сообщение придёт в новый чат. Это дополнительная страховка с нашей стороны, но она не отменяет необходимости заменить старый идентификатор на новый.
Необходимость перехода на @lid#
WhatsApp уведомляет, что постепенный отказ от номеров телефонов продлится примерно до конца 2026 года, поэтому стоит быть готовым к переменам.
Из этой статьи вы узнали, что переход на @lid можно произвести без значительных изменений интеграции и в короткие сроки.
Именно поэтому уже сегодня стоит подготавливать вашу интеграцию или чат-бота к работе с @lid.