Мы прекращаем поддержку локального API. Подробные сведения и информацию о том, как перейти на облачный API нового поколения, см. в документе Упразднение локального API.

We are making changes to the WhatsApp Business Platform pricing model. See Pricing Updates on the WhatsApp Business Platform.

Шаблоны сообщений

Чтобы начать переписку категории "Услуги", "Маркетинг" или "Аутентификация", необходим шаблон сообщения. К таким перепискам относятся сообщения, связанные с поддержкой клиентов, напоминания о встрече, обновления об оплате или отправке товаров, уведомления и многое другое.

Требования

  • Для начала переписки можно использовать только одобренные шаблоны сообщений. Подробнее.
  • Чтобы с клиентом можно было начать переписку категории "Услуги", "Маркетинг" или "Аутентификация", этот клиент должен согласиться на получение сообщений от вашей компании. Подробнее…

Поддерживаемые категории шаблонов

См. Категории.

Переводы

При отправке шаблона сообщения укажите язык в поле language. Ответственность за используемые переводы несет компания.

Поддерживаемые языки

Поддерживаемые языки

Ниже перечислены поддерживаемые языки для шаблонов сообщений.

ЯзыкКод

Африкаанс

af

Албанский

sq

Арабский

ar

Азербайджанский

az

Бенгальский

bn

Болгарский

bg

Каталанский

ca

Китайский (Китай)

zh_CN

Китайский (Гонконг)

zh_HK

Китайский (Тайвань)

zh_TW

Хорватский

hr

Чешский

cs

Датский

da

Нидерландский

nl

Английский

en

Английский (Великобритания)

en_GB

Английский (США)

en_US

Эстонский

et

Филиппинский

fil

Финский

fi

Французский

fr

Немецкий

de

Греческий

el

Гуджарати

gu

Иврит

he

Хинди

hi

Венгерский

hu

Индонезийский

id

Ирландский

ga

Итальянский

it

Японский

ja

Каннада

kn

Казахский

kk

Корейский

ko

Лаосский

lo

Латышский

lv

Литовский

lt

Македонский

mk

Малайский

ms

Маратхи

mr

Норвежский

nb

Персидский

fa

Польский

pl

Португальский (Бразилия)

pt_BR

Португальский (Португалия)

pt_PT

Панджаби

pa

Румынский

ro

Русский

ru

Сербский

sr

Словацкий

sk

Словенский

sl

Испанский

es

Испанский (Аргентина)

es_AR

Испанский (Испания)

es_ES

Испанский (Мексика)

es_MX

Суахили

sw

Шведский

sv

Тамильский

ta

Телугу

te

Тайский

th

Турецкий

tr

Украинский

uk

Урду

ur

Узбекский

uz

Вьетнамский

vi

Языковые пакеты

Шаблоны сообщений хранятся в языковых пакетах. Языковой пакет — это набор элементов шаблона сообщения для определенного языка или региона. Если у компании есть хотя бы один перевод для определенного языка или региона, создается соответствующий языковой пакет.

Пространство имен шаблона сообщения — это набор языковых пакетов для определенной компании.

Параметры языковой политики

Если при отправке шаблона сообщения для поля language: policy установлено значение deterministic (значение по умолчанию), WhatsApp доставляет шаблон строго на указанном языке (или его версии для указанного региона). Затем устройство запрашивает на сервере языковой пакет для соответствующего языка.

При доставке этого сообщения на устройство реализуется следующий алгоритм:

  • Проверка политики и кода. Есть ли на устройстве кэшированный пакет en для "policy": "deterministic" и "code": "en"?
    • Если да, переходим к проверке элемента.
    • Если нет, есть ли на сервере пакет en?
      • Если да, обновляем локальный кэш и переходим к проверке элемента.
      • Если нет, регистрируем ошибку, сервер возвращает ошибку structure_unavailable через Webhooks и на устройстве не отображаются никакие сообщения.

  • Проверка элемента. Существует ли элемент "element": "hello_world"?
    • Если да, распаковываем параметры и отображаем сообщение на устройстве.
    • Если нет:
      • если языковой пакет взят из локального кэша, скачиваем последнюю версию пакета en с сервера и повторяем проверку элемента;
      • если языковой пакет был недавно скачан с сервера, регистрируем ошибку, сервер возвращает ошибку structure_unavailable через Webhook и на устройстве не отображаются никакие сообщения.

Настройки языка и региона на устройстве полностью игнорируются.

Проблема с политикой deterministic может возникнуть в ситуации, когда какой-либо из указанных объектов не существует. Убедитесь, что выполняются следующие условия:

  • пространство имен указано правильно;
  • название элемента указано правильно;
  • для этого элемента существует перевод на указанный язык или для указанного региона;
  • количество отправленных параметров соответствует их количеству в шаблоне сообщения.

Локализация

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

Локализуемые параметры

Шаблоны содержат параметры, которые динамически подставляются в сообщения. Для примера, который используется в этом документе, шаблон сообщения выглядит так:

"You made a purchase for {{1}} using a credit card ending in {{2}}."

Для пары параметров "namespace": "cdb2df51_9816_c754_c5a4_64cdabdcad3e" и "element_name": "purchase_with_credit_card" первое из указанных вами значений заменяет в шаблоне переменную {{1}}, а второе — переменную {{2}}.

Количество параметров, передаваемых в полезных данных, должно соответствовать количеству параметров в объекте template. В противном случае вы получите обратный вызов с сообщением о проблеме при отображении шаблона.

Некоторые из этих параметров (например, date_time и currency) являются локализуемыми и отображаются с учетом языковых и региональных настроек пользователя. Если устройству не удается локализовать параметр, оно использует значение fallback_value.

Чтобы указать значения валюты и даты (в дополнение к значению fallback_value), используются объекты currency и date_time. В результате клиент сможет локализовать соответствующие данные наилучшим образом, и лишь в случае невозможности использует вариант fallback_value.

Возможные локализуемые параметры localizable_params перечислены в таблице ниже.

Параметры

ИмяОписание

fallback_value

Тип: строка

Обязательный параметр.

Текст по умолчанию на случай сбоя локализации. У всех локализуемых параметров должно быть значение по умолчанию. Если вы указываете текст, необходимо только значение по умолчанию.

currency

Тип: объект currency

Необязательный параметр.

Если используется объект currency, он содержит обязательные параметры currency_code и amount_1000.

date_time

Тип: объект date_time

Необязательный параметр.

Если используется объект date_time, необходимо дополнительно определить дату и время. Соответствующие варианты см. в примере ниже.

Объект currency

Клиент WhatsApp Business API пытается отображать валюту в выбранном формате локализации.

ИмяОписание

currency_code

Тип: строка

Обязательный параметр.

Код валюты согласно стандарту ISO 4217.

amount_1000

Тип: целое число

Обязательный параметр.

Значение, умноженное на 1 000.

Пример

{
    "type": "currency",
    "currency" : {
        "fallback_value": "$230.99",
        "code": "USD",
        "amount_1000": 230990
    }
}  

Объект date_time

Клиент WhatsApp Business API пытается отображать дату и время в выбранном формате локализации. В частности, поддерживаются перечисленные ниже форматы даты и времени.

  • Штучное время — время состоит из единиц (день недели, месяц, час и т. д.). Указанное время не будет изменяться в зависимости от часового пояса клиента.
  • Время Unix — отображаемое время зависит от часового пояса клиента.

DateTime

ИмяОписание

component

Тип: DateTimeComponent

Обязательный, если не указан параметр unix_epoch.

Штучные дата и время.

unix_epoch

Тип: DateTimeUnixEpoch

Обязательный, если не указан параметр component.

Дата и время Unix.

Обязательным является как минимум одно из следующих полей: component или unix_epoch. При этом должно быть указано только одно из них.

DateTimeComponent

ИмяОписание

day_of_week

Тип: строка

Необязательный параметр.

Если значение отличается от значения, полученного на основании даты (при ее наличии), используется значение на основании даты. Принимаются как строковые, так и числовые значения.
Возможные варианты:"MONDAY", 1, "TUESDAY", 2, "WEDNESDAY", 3, "THURSDAY", 4, "FRIDAY", 5, "SATURDAY", 6, "SUNDAY", 7

year

Тип: целое число

Необязательный параметр.

Год.

month

Тип: целое число

Необязательный параметр.

Месяц.

day_of_month

Тип: целое число

Необязательный параметр.

День месяца.

hour

Тип: целое число

Необязательный параметр.

Час.

minute

Тип: целое число

Необязательный параметр.

Минута.

calendar

Тип: строка

Необязательный параметр.

Тип календаря.
Возможные варианты: GREGORIAN, SOLAR_HIJRI.

Пример

{
    "type": "date_time",
    "date_time" : {
        "fallback_value": "October 25, 2020",
        "day_of_week": "Saturday",
        "day_of_month": 25,
        "year": 2020,
        "month": 10,
        "hour": 12,
        "minute": 0
    }
}

DateTimeUnixEpoch

Тип DateTimeUnixEpoch будет упразднен. После этого по умолчанию будет использоваться тип DateTimeComponent. Чтобы избежать проблем, внесите соответствующие изменения в код.

ИмяОписание

timestamp

Тип: целое число

Обязательный параметр.

Метка времени эпохи в секундах. Это поле будет упразднено.

Дальнейшие действия

Этот документ содержит справочную информацию о шаблонах сообщений. Инструкции по созданию и отправке шаблонов см. в статье Отправка шаблонов сообщений. Список всех параметров, которые можно использовать в шаблонах сообщений, см. в этом разделе.

https://developers.facebook.com/docs/whatsapp/message-templates/creation#step-1--create-template-using-the-whatsapp-manager