Триггерные push-уведомления

Типы уведомлений

Добавить сообщение и уведомить

Фон

После того как пользователь добавит пропуск, вы можете отправить ему сообщение, связанное с пропуском, и убедиться, что он уведомлен об этом. При использовании запроса API добавления сообщения с типом message_type , равным TEXT_AND_NOTIFY происходит следующее:

  1. Элемент « Сообщение » добавляется в «обратную сторону пропуска» (также известный как « Шаблон сведений» ), и пользователям с сохраненным пропуском отправляется push-уведомление.
  2. Как только пользователь нажимает на уведомление, он открывает Google Кошелек в передней части пропуска (также известный как «Просмотр карты»), и пользователь увидит выноску в верхней части экрана с кнопкой «Просмотреть сообщение».
  3. Нажав на выноску, пользователи перейдут в конец пропуска, где будут выделены новые непрочитанные сообщения.

Некоторые соображения при отправке сообщений с уведомлениями пользователям

  • Пользователи должны включить уведомления для своих пропусков, чтобы получать push-уведомления, связанные с сообщениями.
  • Сообщения могут содержать URI вашего веб-сайта или приложения. Гиперссылки должны указывать на веб-сайт или приложение, связанное с пропуском. Отправка пользователей по ссылкам, не связанным с пропуском, является нарушением Политики допустимого использования .
  • Вы можете отправить максимум 3 сообщения, которые вызовут push-уведомление, в течение 24 часов. Google может ограничить вашу квоту на доставку push-уведомлений, если сочтет, что вы рассылаете спам своим пользователям.
  • Push-уведомления, которые пользователи видят на экране блокировки, контролируются Google Кошельком.
  • Вы можете использовать методы UPDATE или PATCH для редактирования или удаления данных сообщения, используя конечную точку обычного класса или объекта.

Этапы интеграции

Если вы хотите уведомить пользователей о новом сообщении эмитента, добавленном с помощью API AddMessage, вам необходимо обновить AddMessageRequest , чтобы сообщение , содержащее ваш новый текст, имело MessageType TEXT_AND_NOTIFY вместо TEXT .

Пример запроса JSON для добавления сообщения и уведомления в классе Passes

  …
  "id": ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Class message header",
        "body": "My Class message body with a <a href="https://wallet.google">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  …

Пример запроса JSON для добавления сообщения и уведомления в объекте Passes

  …
  "id": OBJECT_ID",
  "classId": "ISSUER_ID.CLASS_ID",
  "message":
    {
        "header":"My Object message header",
        "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
        "id": "message_id",
        "message_type": "TEXT_AND_NOTIFY"
    },
  …

Пример ответа на добавление сообщения и уведомление о проходном классе

  // The updated resource
  …
    {
      "kind": "walletobjects#walletObjectMessage",
      "header": "My Object message header",
      "body": "My Object message body with a <a href="http://play.google.com/store/apps/details?id=com.google.android.apps.maps">Hyperlink<\a>",
      "id": "message_id",
      "messageType": "textAndNotify"
    },
  …

Обработка исключений

Любые попытки отправить уведомление более трех раз приведут к ответу QuotaExceededException . Любые дальнейшие обновления пропуска можно установить с помощью « TEXT » вместо « TEXT_AND_NOTIFY », как описано в разделе «Шаги интеграции ».

Обновить поле и уведомить

Фон

После того как пользователь добавит пропуск, вы можете захотеть активировать push-уведомление при обновлении определенных полей. Уведомление появится на экране блокировки пользователя и сообщит ему, что в его пропуске появилось обновление. Это уведомление будет срабатывать только для определенного подмножества полей, определенных ниже, с использованием методов API UPDATE и PATCH. После выполнения вызова API для обновления прохода происходит следующее:

  1. Push-уведомление запускается и отображается на экране блокировки пользователя, информируя его об обновлении пропуска.
  2. Как только пользователь нажимает на уведомление, он открывает Google Кошелек в передней части карты (также известный как «Просмотр карты»), и пользователь увидит выноску в верхней части экрана с кнопкой «Просмотреть обновление».
  3. Нажатие кнопки переводит пользователя на экран, где он может увидеть поля, измененные в результате обновления.

Некоторые соображения при отправке уведомлений об обновлении полей

  • Пользователи должны включить уведомления для своих пропусков, чтобы получать push-уведомления, связанные с обновлениями.
  • Вы можете отправить максимум 3 обновления, которые вызовут push-уведомление, в течение 24 часов. Google может ограничить вашу квоту на доставку push-уведомлений, если сочтет, что вы рассылаете спам своим пользователям.
  • Push-уведомление, которое пользователи видят на экране блокировки, контролируется Google Кошельком.
  • Поле notifyPreference — это временное поле, которое действует только в соответствии с этим запросом. Для будущих запросов, когда вы захотите вызвать уведомление, вам придется сбросить это поле в запросе класса или объекта.

Этапы интеграции

Чтобы активировать эти уведомления, вам нужно будет использовать существующие вызовы UPDATE или PATCH и указать notifyPreference. При обновлении поля класса или объекта вы можете добавить новое поле notifyPreference в запрос класса или объекта, чтобы вызвать уведомление.

Пример запроса JSON для обновления и уведомления в классе

    …
    "dateTime":
        {
            "kind": "walletobjects#eventDateTime",
            "doorsOpen": "2024-09-23T19:20:50.00"
        },
    "multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
    "notifyPreference": "notifyOnUpdate",
    …
  

Установка для notifyPreference notifyOnUpdate вызовет уведомление при условии, что обновленное поле в настоящее время поддерживается.

Поддерживаемые поля

Класс лояльности
  • наградыУровень
  • вторичный уровень вознаграждений
  • имя программы
ЛояльностьОбъект
  • лояльностьPoints.balance
  • вторичныйLoyaltyPoints.balance