Что такое push-фреймворк

Обновлено: 06.07.2024

Если поддержка по запросу, предлагаемая Zendesk Support, недостаточна для вашего случая использования, вы также можете написать код, который напрямую вызывает Zendesk API для отправки контента в Zendesk Support. Поддержка push требует значительно больше усилий, чем поддержка pull, поэтому ее следует использовать только в том случае, если вы уверены, что она вам нужна.

Элементы push

Вы отправляете данные в Zendesk Support, отправляя POST-запросы к конечной точке отправки Zendesk API. Запросы POST должны быть аутентифицированы токеном OAuth, сгенерированным платформой канала. Вы должны зарегистрировать идентификатор клиента в Zendesk Support, прежде чем платформа канала сможет создавать токены от вашего имени.

  1. Создайте новый глобальный клиент OAuth, как описано ниже, или используйте существующий клиент.
  2. Установите для параметра push_client_id в манифесте службы уникальный идентификатор вашего глобального клиента.
  3. Когда администратор использует ваш пользовательский интерфейс для создания новой учетной записи интеграции, запишите субдомен и токен доступа, которые передаются вашей службе.
  4. Используйте субдомен и токен доступа для вызова конечной точки отправки по мере необходимости.

Создание глобального клиента OAuth

  1. Создайте или получите клиент OAuth в Zendesk Support, как описано в разделе Использование аутентификации OAuth в вашем приложении.
  • Описание не может быть пустым.
  • Запишите уникальный идентификатор и секрет
  1. Повысьте уровень своего клиента OAuth до "глобального", отправив запрос в службу поддержки Zendesk, как описано в разделе Запрос глобального клиента OAuth для интеграции Zendesk Support.

Получение токена доступа

Когда администратор Zendesk Support настраивает или редактирует учетную запись интеграции, Zendesk Support вызывает ваш административный интерфейс. Если ваш манифест содержит запись push_client_id, Zendesk Support сгенерирует токен доступа и передаст его вашему интерфейсу. В частности, в ваш сервис будут отправлены следующие данные:

субдомен< td data-garden-id="tables.cell" data-garden-version="8.39.0" >zendesk_access_token
Имя поля публикации Тип Комментарии
string Поддомен учетной записи службы поддержки Zendesk, для которой выполняется настройка создать учетную запись в вашей службе
instance_push_id string Идентификатор настраиваемой учетной записи. Вы будете использовать это при вызове конечной точки push
string Токен OAuth, который будет использоваться при вызове конечной точки отправки. Этот токен нельзя использовать с другими конечными точками, а другие токены нельзя использовать для доступа к конечной точке push

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

Вызов конечной точки push-уведомлений

После получения субдомена, идентификатора экземпляра и токена доступа вы можете вызвать конечную точку отправки, чтобы синхронно отправить содержимое интеграции в службу поддержки Zendesk.

Конечная точка push проверяет JSON с помощью схемы Channel Framework. Отправка значений JSON неправильного типа приведет к ответу 400 Bad Request.

В последних двух выпусках Wireless & Mobile UPDATE я писал о службе коротких сообщений (SMS) и оповещениях UP.Link, технологиях доставки беспроводных push-приложений. В этом выпуске я продолжу тему и более подробно рассмотрю инфраструктуру беспроводного протокола приложений (WAP) Push.

Как и оповещения UP.Link, WAP Push позволяет беспроводным приложениям интегрировать функции беспроводной передачи данных (уведомления) и беспроводного извлечения данных (просмотра). WAP 1.2 и выше включают структуру WAP Push; в середине-конце 2001 года новые телефоны Ericsson r520 и Nokia 6310 будут включать эту функцию.Из-за того, что устройств с поддержкой WAP Push так мало, более широкий рынок может медленно внедрять приложения WAP Push. Однако если у вас есть специализированные корпоративные приложения, такие как автоматизация беспроводных продаж, эти конкретные устройства позволят вам развернуть WAP Push.

WAP Push Framework
Функциональность WAP Push framework очень похожа на функциональность оповещений UP.Link. Так зачем использовать WAP Push вместо оповещений UP.Link? Платформа WAP Push является отраслевым стандартом; операторы по всему миру выпускают устройства с поддержкой WAP. Однако технология UP.Link Alerts применима в первую очередь к рынку США. WAP Push также обеспечивает превосходную безопасность, которая предотвращает беспроводную спам-рассылку (доставку сообщений без проверки подлинности), поскольку для получения сообщений пользователь должен подписаться на службу WAP Push.

Структура WAP Push описывает все протоколы, службы и интерфейсы, которые позволяют устройству WAP получать сообщения. Я не могу охватить здесь все функции и протоколы платформы WAP Push, но я включу несколько терминов и некоторый код, чтобы помочь вам понять, как отправлять сообщения с помощью WAP Push. Таким образом, сообщение отправляется от инициатора push-уведомлений (интернет-сервера) на прокси-шлюз push-уведомлений (PPG) с использованием протокола push-доступа (PAP). Затем PPG доставляет сообщение на устройство с поддержкой WAP, используя протокол Push Over-the-air Protocol, если выполнена соответствующая аутентификация сообщения.

Принцип работы WAP Push-сообщений
WAP Push-сообщения работают двумя основными способами:

Структура push-уведомлений Dovecot предоставляет информацию о событиях RFC 5423 (события интернет-хранилища сообщений), которые происходят в Dovecot, в систему, которая может использоваться для сообщения об этих событиях внешним службам.

Эти события не поддерживаются системой уведомлений:

QuotaExceed (обрабатывается плагином Quota)

QuotaWithin (обрабатывается подключаемым модулем Quota)

Использование¶

Чтобы использовать push-уведомления, плагины notify и push_notification должны быть активированы путем определения в mail_plugins .

Это можно установить глобально или ограничить протоколами, для которых вы хотите создавать push-уведомления. Например, чтобы ограничиться только уведомлениями о доставке почты, следует использовать следующую конфигурацию:

Настройки¶

Драйверы¶

Драйвер push-уведомлений определяется параметром push_notification_driver.

Значением конфигурации является имя драйвера, за которым может следовать символ : и параметры, относящиеся к драйверу (поддерживаемые параметры см. в драйверах).

Можно указать несколько драйверов push-уведомлений, добавив порядковый номер к метке push_notification_driver, начиная с цифры 2 . Для этикеток не должно быть пробелов в нумерации; будут обработаны только те драйверы, которые появляются в последовательном порядке.

Конфигурация нескольких драйверов полезна, если, например, вы хотите обработать один драйвер с разными конфигурациями.

Список драйверов, поставляемых с ядром Dovecot, приведен ниже.

DLOG (журнал отладки) [ dlog ]¶

Это приведет к тому, что уведомления попадут в ваш журнал отладки.

Драйвер OX (Open-Xchange) [ ox ]¶

Бэкенд OX поддерживает отправку уведомлений о событиях MessageNew (т. е. о доставке почты, а не о IMAP APPEND).

Этот драйвер был разработан для использования с API push-уведомлений OX App Suite, но может использоваться любой конечной точкой push-уведомлений, которая реализует этот API, а не только OX App Suite.

ДА

Используемая конечная точка HTTP (URL + информация для аутентификации) настраивается в файле конфигурации Dovecot. Содержит информацию об аутентификации, необходимую для базовой аутентификации (если есть). Пример: http + "://" + + ":" +

Срок жизни кэша для записи METADATA для пользователя. (ПО УМОЛЧАНИЮ: 60 секунд )

Максимальное количество попыток подключения к конечной точке OX. (ПО УМОЛЧАНИЮ: 1 )

(Наличие настройки)

Использовать пользователя, сохраненного в записи METADATA, вместо пользователя, отправленного конечной точкой OX. Не требует аргумента; наличие опции активирует функцию. (ПО УМОЛЧАНИЮ: используется пользователь, возвращенный ответом конечной точки)

Метаданные¶

Push-уведомления включаются отдельно для каждого пользователя с помощью METADATA. Обычно OX App Suite делает это внутри, но, например. в целях тестирования вы можете сделать это самостоятельно:

Пример полезной нагрузки¶

Push-уведомление отправляется в формате JSON со следующими полями:

Тип события RFC 5423 (в настоящее время только «MessageNew»)

Адрес отправителя сообщения RFC 2822 (в кодировке MIME), если применимо

UID сообщения, если применимо

Значение RFC 3501 UIDVALIDITY почтового ящика

Фрагмент тела сообщения (UTF-8), если применимо

Тема сообщения (в кодировке MIME), если применимо

RFC 3501 UNSEEN значение почтового ящика

Пример ( Content-Type: application/json; charset=utf-8 ):

Луа [луа]¶

Новое в версии 2.3.4.

Вы можете использовать Lua для написания собственных обработчиков push-уведомлений.

Общую информацию о том, как Lua реализован в Dovecot, см. в разделе Поддержка Lua Dovecot.

Конфигурация¶

Обработчик push-уведомлений Lua требует загрузки подключаемых модулей mail_lua и push_notification_lua в дополнение к рассмотренным выше подключаемым модулям.

Выполняемый lua-файл. Если скрипт не указан, по умолчанию будет использоваться mail_lua_script.

Обзор API¶

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

Драйвер поддерживает все доступные события push-уведомлений.

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

Все события содержат как минимум:

Название названия события

Текущий пользователь почты

События всегда вызываются постфактум.

Должен быть хотя бы один обработчик событий, иначе функции начала и завершения транзакции никогда не будут вызываться. Это оптимизация, чтобы избежать обращения к Lua, когда это не нужно.

Транзакции¶

Начать транзакцию. Возвращаемое значение используется как контекст транзакции и обрабатывается драйвером Lua как непрозрачное значение. Пользовательский параметр — это объект mail_user.

dovecot_lua_notify_end_txn ( контекст , успех ) ¶

Завершить транзакцию, контекст не указан.

События почтового ящика¶

Все события почтового ящика содержат следующие параметры:

Имя затронутого почтового ящика

dovecot_lua_notify_event_mailbox_create ( контекст , , почтовый ящик> ) ¶

Вызывается при создании почтового ящика.

dovecot_lua_notify_event_mailbox_delete ( контекст , , почтовый ящик> ) ¶

Вызывается при удалении почтового ящика.

dovecot_lua_notify_event_mailbox_rename ( контекст , , почтовый ящик , mailbox_old> ) ¶

Вызывается при переименовании почтового ящика, старое имя сохраняется в атрибуте mailbox_old.

dovecot_lua_notify_event_mailbox_subscribe ( контекст , , почтовый ящик> ) ¶

Вызывается при подписке на почтовый ящик. Почтовый ящик не обязательно существует.

dovecot_lua_notify_event_mailbox_unsubscribe ( контекст , , почтовый ящик> ) ¶

Вызывается при отмене подписки на почтовый ящик. Почтовый ящик не обязательно существует.

События сообщений¶

Все события сообщений содержат следующие параметры:

dovecot_lua_notify_event_message_new ( контекст , , почтовый ящик , uid , uid_validity , дата< /em> , tz , от , от_адреса , от_отображаемого_имя , до , < em>to_address , to_display_name , тема , snippet> ) ¶

Вызывается при доставке сообщения.

dovecot_lua_notify_event_message_append ( контекст , , почтовый ящик , uid , uid_validity , от< /em> , from_address , from_display_name , до , to_address , to_display_name , < em>тема , сниппет> ) ¶

Вызывается, когда сообщение добавляется в почтовый ящик (через IMAP).

dovecot_lua_notify_event_message_read ( контекст , , почтовый ящик , uid , uid_validity> ) ¶

Вызывается, когда сообщение помечено как просмотренное .

dovecot_lua_notify_event_message_trash ( контекст , , почтовый ящик , uid , uid_validity> ) ¶

Вызывается, когда сообщение помечено как удаленное .

dovecot_lua_notify_event_message_expunge ( контекст , , почтовый ящик , uid , uid_validity> ) ¶

Вызывается при удалении сообщения.

dovecot_lua_notify_event_flags_set ( контекст , , почтовый ящик , uid , uid_validity , flags< /em> , keywords_set> ) ¶

Вызывается, когда установлены флаги сообщения или ключевые слова. flags — это битовая маска. keywords_set — это таблица строк ключевых слов, заданных событием.

dovecot_lua_notify_event_flags_clear ( context , , почтовый ящик , uid , uid_validity , flags< /em> , keywords_clear , keywords_old> ) ¶

Вызывается при удалении флагов сообщений или ключевых слов. flags — это битовая маска. keywords_clear содержит очищенные ключевые слова, keywords_old — это таблица ключевых слов, которые были заданы до события.

Читайте также: