Перейти к основному содержимому

Адресные сообщения | Документация для разработчиков

Адресные сообщения

Обновлено: 7 ноября 2025 г
Эта функция доступна только для компаний, расположенных в Индии, и их клиентов в Индии.
Сообщения с адресом позволяют пользователям проще делиться адресом доставки с компанией через WhatsApp.
Адресные сообщения — это интерактивные сообщения, состоящие из 4 основных частей: заголовка , тела , нижнего колонтитула и действия . Внутри компонента действия бизнес-логика задаёт имя «address_message» и соответствующие параметры.
В таблице ниже перечислены поля, поддерживаемые адресным сообщением.
Название поля Наклейка на дисплей Тип ввода Поддерживаемые страны Ограничения
имя
Имя
текст
Индия
Никто
номер телефона
Номер телефона
тел
Индия
Только действительные номера телефонов
in_pin_code
Пин-код
текст
Индия
Максимальная длина: 6
номер дома
Номер квартиры/дома
текст
Индия
Никто
номер_этажа
Номер этажа
текст
Индия
Никто
номер_башни
Номер башни
текст
Индия
Никто
название_здания
Название здания/квартиры
текст
Индия
Никто
адрес
Адрес
текст
Индия
Никто
достопримечательность_район
Достопримечательность/Район
текст
Индия
Никто
город
Город
текст
Индия
Никто
состояние
Состояние
текст
Индия
Никто

Пример вызова API

Это пример вызова API для отправки адресного сообщения. «страна» является обязательным полем в параметрах действия. Если он не указан, возникнет ошибка проверки.
curl -X POST \ 'https://graph.facebook.com/<API_VERSION> /<FROM_PHONE_NUMBER_ID> /messages' \ -H 'Авторизация: Bearer'<ACCESS_TOKEN> ' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<PHONE_NUMBER> ", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Спасибо за ваш заказ! Укажите адрес, по которому вы хотите получить этот заказ." }, "action": { "name": "address_message", "parameters": { "country": "<COUNTRY_ISO_CODE> " } } } }'

Обработка ошибок

Если код города телефонного номера для указанной страны неверен, компании не смогут запросить адресное сообщение у получателя. Например, компании не смогут запросить адресное сообщение у получателя, у которого страна указана как «Индия», но телефонный номер имеет код города «65».
После отправки адресного сообщения компания ожидает, пока пользователь введёт адрес и отправит его обратно. Введённый пользователем адрес передаётся через веб-хук, зарегистрированный в процессе настройки .

Шаги обработки адресного сообщения

Процесс отправки адресного сообщения включает следующие этапы:
    пользователю адресное сообщение с именем действия address_message.Пользователь взаимодействует с сообщением, нажав на кнопку призыва к действию (CTA), после чего открывается экран ввода адреса. Пользователь заполняет свой адрес и отправляет формуПосле отправки пользователем формы с адресом партнер получает уведомление через веб-хук, содержащее подробную информацию об адресе, предоставленном пользователем
    Пример сообщения с адресом в Индии
    ИзображениеИзображениеИзображениеИзображение
    На следующей диаграмме показана типичная последовательность обработки адресного сообщения.
    Изображение

    Дополнительные параметры действия

    Компания может передавать дополнительные атрибуты, такие как значения , ошибки проверки или сохраненные адреса, в качестве параметров интерактивного действия. Информацию об использовании каждого из них вы найдете ниже.
    Параметр действия Использование
    ценности
    Компании автоматически заполняют эти поля адреса (например, поле «Город» заполняется значением «Индия»)
    сохраненные_адреса
    Для бизнеса это означает возможность передачи сохраненных адресов, ранее связанных с пользователем.
    Пользователям предоставляется возможность выбрать сохраненный адрес вместо того, чтобы вводить его вручную
    validation_errors
    Компании могут выдавать ошибки в полях адреса, и WhatsApp не позволит пользователю отправить адрес до тех пор, пока проблема (проблемы) не будут решены.

    Отправить адресное сообщение пользователю

    Выполните POST -запрос к / Используя API WhatsApp, отправить пользователю сообщение с сквозным шифрованием адреса:
    curl -X POST \ 'https://graph.facebook.com/<API_VERSION> /<FROM_PHONE_NUMBER_ID> /messages' \ -H 'Авторизация: Bearer'<ACCESS_TOKEN> ' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "<PHONE_NUMBER> ", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Спасибо за ваш заказ! Укажите адрес, по которому вы хотите получить доставку." }, "action": { "name": "address_message", "parameters": "JSON Payload" } } }'
    Чтобы отправить сообщение с адресом, не имея сохраненных адресов, WhatsApp предложит пользователю или компании заполнить форму для ввода нового адреса.
    curl -X POST \ 'https://graph.facebook.com/<API_VERSION> /<FROM_PHONE_NUMBER_ID> /messages' \ -H 'Авторизация: Bearer'<ACCESS_TOKEN> ' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "+91xxxxxxxxxx", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Спасибо за ваш заказ! Укажите адрес доставки." }, "action": { "name": "address_message", "parameters": { "country": "IN", "values": { "name": "<CUSTOMER_NAME> ", "номер_телефона": "+91xxxxxxxxxxxx" } } } } }'
    Чтобы отправить сообщение с сохраненными адресами, WhatsApp предложит пользователю или компании выбрать один из сохраненных адресов или добавить свой собственный. Пользователи могут проигнорировать сохраненный адрес и ввести новый.
    curl -X POST \ 'https://graph.facebook.com/<API_VERSION> /<FROM_PHONE_NUMBER_ID> /messages' \ -H 'Авторизация: Bearer'<ACCESS_TOKEN> ' \ -H 'Content-Type: application/json' \ -d ' { "messaging_product": "whatsapp", "recipient_type": "individual", "to": "91xxxxxxxxxx", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Спасибо за ваш заказ! Укажите адрес, по которому вы хотите получить доставку." }, "action": { "name": "address_message", "parameters": { "country": "IN", "saved_addresses": [ { "id": "address1", "value": { "name": "<CUSTOMER_NAME> ", "номер_телефона": "+91xxxxxxxxxx", "почтовый_код": "400063", "номер_этажа": "8", "название_здания": "", "адрес": "крыло A, Cello Triumph, IB Patel Rd", "ориентир_район": "Горегаон", "город": "Мумбаи" } } ] } } } }'

    Проверьте свой ответ

    В случае успешного ответа предоставляется messages с идентификатором для вновь созданного сообщения.
    { "messaging_product": "whatsapp", "contacts": [ { "input": "<PHONE_NUMBER> ", "wa_id": "<WHATSAPP_ID> " } ], "messages": [ { "id": "wamid.ID" } ] }
    Неудачный ответ содержит сообщение об ошибке. Дополнительную информацию разделах «Коды ошибок» и «Коды состояния»

    Отправить адресное сообщение с ошибками проверки

    В случае ошибки проверки на сервере компании пользователю следует повторно отправить адресное сообщение. Компания должна отправить обратно набор значений, ранее введенных пользователем, вместе с соответствующими ошибками проверки для каждого недопустимого поля, как показано в примерах полезной нагрузки ниже.
    curl -X POST \ 'https://graph.facebook.com/<API_VERSION> /<FROM_PHONE_NUMBER_ID> /messages' \ -H 'Авторизация: Bearer'<ACCESS_TOKEN> ' \ -H 'Content-Type: application/json' \ -d '{ "messaging_product": "whatsapp", "recipient_type": "individual", "to": "91xxxxxxxxxx", "type": "interactive", "interactive": { "type": "address_message", "body": { "text": "Спасибо за ваш заказ! Укажите адрес доставки." }, "action": { "name": "address_message", "parameters": { "country": "IN", "values": { "name": "CUSTOMER_NAME", "phone_number": "+91xxxxxxxxxx", "in_pin_code": "666666", "address": "Другое местоположение", "city": "Дели" }, "validation_errors": { "in_pin_code": "Нам не удалось определить этот почтовый индекс." } } } } }'

    Получайте уведомления о предоставлении адресных данных

    Компании будут получать уведомления о предоставлении адресов через веб-хуки , подобные показанному ниже.
    { "messages": [ { "id": "gBGGFlAwCWFvAgmrzrKijase8yA", "from": "<PHONE_NUMBER> ", "interactive": { "type": "interactive", "action": "address_message", "nfm_reply": { "name": "address_message", "response_json": "<response_json from client> ", "тело": "<body text from client> " }, "timestamp": "1670394125" } } ] }
    Уведомление веб-перехватчика имеет следующие значения.
    Название поля Тип Описание
    интерактивный
    Объект
    Содержит ответ от клиента
    тип
    Нить
    nfm_reply будет указывать на то, что это ответ Native Flow Response (NFM) от клиента.
    nfm_reply
    Объект
    Содержит данные, полученные от клиента
    response_json
    Нить
    Значения полей адреса, заполненных пользователем в формате JSON, которые всегда присутствуют
    тело (необязательно)
    Нить
    Основной текст от клиента, то, что видит пользователь
    имя (необязательно)
    Нить
    address_message будет указывать тип ответа NFM-действия от клиента.
    Ниже показан ответ в виде адресного сообщения, представленный в формате NFM-ответа на запрос с адресом из Индии.
    { "messages": [ { "context": { "from": "FROM_PHONE_NUMBER_ID", "id": "wamid.HBgLMTIwNjU1NTAxMDcVAgARGBI3NjNFN0U5QzMzNDlCQjY0M0QA" }, "from": "<PHONE_NUMBER> ", "id": "wamid.HBgLMTIwNjU1NTAxMDcVAgASGCA5RDhBNENEMEQ3RENEOEEzMEI0RUExRDczN0I1NThFQwA=", "timestamp": "1671498855", "type": "interactive", "interactive": { "type": "nfm_reply", "nfm_reply": { "response_json": "{\"saved_address_id\":\"address1\",\"values\":{\"in_pin_code\":\"400063\",\"building_name\":\"\",\"landmark_area\":\"Goregaon\",\"address\":\"Wing A, Cello Triumph, IB Patel Rd\",\"city\":\"Мумбаи\",\"name\":\"ИМЯ_ПОЛЬЗОВАТЕЛЯ\",\"номер_телефона\":\"+91xxxxxxxxxx\",\"номер_этажа\":\"8\"}}", "body": "ИМЯ_ПОЛЬЗОВАТЕЛЯ\n +91xxxxxxxxxx\n 400063, Горегаон, крыло A, Cello Triumph, IB Patel Rd, Мумбаи, 8", "name": "адрес_сообщение" } } } ] }

    Функция не поддерживается

    В случае, если клиент не поддерживает address_message , сообщения молча отбрасываются, и в веб-перехватчик отправляется сообщение об ошибке. Ниже показано уведомление веб-перехватчика, которое будет отправлено обратно:
    { "statuses": [ { "errors": [ { "code": 1026, "href": "/docs/whatsapp/api/errors", "title": "Receiver Incapable" } ], "id": "gBGGFlAwCWFvAgkyHMGKnRu4JeA", "message": { "recipient_id": "+91xxxxxxxxxx" }, "recipient_id": "91xxxxxxxxxx", "status": "failed", "timestamp": "1670394125", "type": "message" } ] }