Уведомления, инициированные партнерами
Добавить сообщение и уведомить
Фон
После добавления пользователем пропуска вы можете отправить ему сообщение, связанное с этим пропуском, и убедиться, что он уведомлен об этом. При использовании запроса API «Добавить сообщение» с параметром message_type , равным TEXT_AND_NOTIFY происходит следующее:
- В «оборотную сторону пропуска» (также известную как шаблон сведений ) добавляется элемент « Сообщение », и пользователям отправляется push-уведомление о сохранении пропуска.
- После того, как пользователь нажмет на уведомление, откроется Google Wallet на лицевой стороне карты (так называемый режим просмотра карточки), и в верхней части экрана появится всплывающее окно с кнопкой «Просмотреть сообщение».
- Нажатие на всплывающую подсказку переведет пользователя в конец пропуска, где будут выделены новые непрочитанные сообщения.
Некоторые моменты, которые следует учитывать при отправке сообщений с уведомлениями пользователям.
- Для получения push-уведомлений о сообщениях пользователям необходимо включить уведомления для своих пропусков.
- Сообщения могут содержать URI вашего веб-сайта или приложения. Гиперссылки должны вести на веб-сайт или в приложение, связанные с данным пропуском. Перенаправление пользователей на ссылки, не относящиеся к данному пропуску, является нарушением Политики допустимого использования .
- В течение 24 часов вы можете отправить максимум 3 сообщения, которые вызовут push-уведомление. Google может ограничить количество отправляемых вами push-уведомлений, если посчитает, что вы рассылаете спам своим пользователям.
- Push-уведомления, которые пользователи видят на экране блокировки, управляются Google Wallet.
- Для редактирования или удаления данных сообщения с помощью обычных конечных точек класса или объекта можно использовать методы 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" }, …
Обработка исключений
Любые попытки отправить уведомление более 3 раз приведут к ошибке QuotaExceededException . Дальнейшие изменения пароля можно установить, используя " TEXT " вместо " TEXT_AND_NOTIFY ", как описано в разделе "Этапы интеграции ".
Обновить поле и уведомить
Фон
После добавления пользователем пропуска может потребоваться отправка push-уведомления при обновлении определенных полей. Уведомление появится на экране блокировки пользователя и сообщит ему об обновлении пропуска. Это уведомление будет срабатывать только для определенного подмножества полей, определенных ниже с помощью методов API UPDATE и PATCH. После выполнения вызова API для обновления пропуска происходит следующее:
- На экране блокировки пользователя отправляется push-уведомление, информирующее об обновлении пароля.
- После того, как пользователь нажмет на уведомление, откроется Google Wallet на лицевой стороне карты (так называемый режим просмотра карты), и в верхней части экрана появится всплывающее окно с кнопкой «Просмотреть обновление».
- Нажатие кнопки переводит пользователя на экран, где он может увидеть поля, измененные в результате обновления.
Некоторые моменты, которые следует учитывать при отправке уведомлений об обновлении полей.
- Для получения push-уведомлений об обновлениях пользователям необходимо включить уведомления для своих абонементов.
- В течение 24 часов вы можете отправить максимум 3 обновления, которые вызовут push-уведомление. Google может ограничить количество отправляемых вами push-уведомлений, если посчитает, что вы рассылаете спам своим пользователям.
- Push-уведомления, которые пользователи видят на экране блокировки, управляются Google Wallet.
- Поле
notifyPreferenceявляется временным и существует только в рамках данного запроса. Для последующих запросов, когда вы захотите инициировать уведомление, вам потребуется сбросить это поле в запросе класса или объекта.
Этапы интеграции
Для запуска этих уведомлений вам потребуется использовать существующие вызовы UPDATE или PATCH и указать notifyPreference. При обновлении поля в классе или объекте вы можете добавить новое поле notifyPreference в запрос класса или объекта, чтобы запустить уведомление.
Пример JSON-запроса для обновления и уведомления в классе.
…
"dateTime":
{
"kind": "walletobjects#eventDateTime",
"doorsOpen": "2024-09-23T19:20:50.00"
},
"multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
"notifyPreference": "notifyOnUpdate",
…
Установка параметра notifyPreference в notifyOnUpdate вызовет уведомление, при условии, что обновляемое поле в настоящее время поддерживается.
Поддерживаемые поля
FlightObject
- boardingAndSeatingInfo.seatNumber
- boardingAndSeatingInfo.seatAssignment
Уведомления поблизости
Эта функция будет показывать пользователям, которые включили уведомления и предоставили приложению Google Wallet точный, постоянный доступ к местоположению, push-уведомление, напоминающее им о том, что они сохранили пароль, соответствующий их текущему местоположению.Этапы интеграции
Как использовать
Для использования этой функции необходимо добавить местоположения в ваши классы и объекты. Вы можете добавить до 10 местоположений на класс и до 10 на объект. Используйте MerchantLocations в определении вашего класса или объекта. Вы можете добавить эти местоположения при использовании методов insert , patch или update .
После добавления местоположений к классу или объекту Google будет отправлять уведомления пользователям, когда они окажутся поблизости. Google определяет, насколько близко должен находиться пользователь и как долго он должен оставаться в этом районе, прежде чем будет отправлено уведомление. Google также контролирует текст уведомления.
Пример класса LoyaltyClass с заданным параметром MerchantLocations:{
"kind": "walletobjects#loyaltyClass",
"programLogo": {
"kind": "walletobjects#image",
"sourceUri": {
"uri":
...
}
},
"localizedProgramName": {
"kind": "walletobjects#localizedString",
"defaultValue": {
"kind": "walletobjects#translatedString",
"language": "en",
"value": "Program Name",
}
},
"id": Id1234,
"version": "1",
"allowMultipleUsersPerObject": true,
"reviewStatus": "underReview",
"enableSmartTap": false,
"localizedIssuerName": {
"kind": "walletobjects#localizedString",
"defaultValue": {
"kind": "walletobjects#translatedString",
"language": "en",
"value": "Issuer Name"
}
},
"multipleDevicesAndHoldersAllowedStatus": "multipleHolders",
"merchantLocations": [
{
"latitude": 37.79020867928078,
"longitude": -122.39004
},
{
"latitude": 37.42587,
"longitude": -122.08620
},
]
}Ожидаемое поведение
Пользователи должны получать навязчивые уведомления о своих пропусках, когда находятся в одном из указанных мест расположения продавцов. При нажатии на уведомление пропуск откроется в Google Wallet. Пользователи могут закрыть уведомление с помощью жеста смахивания. Когда пользователь покинет место, уведомление исчезнет.
Автоматические уведомления, запускаемые Google Wallet
Предстоящее уведомление
Google Wallet отправляет пользователю уведомление за три часа до вылета. Время вылета определяется параметром class.localScheduledDepartureDateTime .
Чтобы получать это уведомление, пользователь должен включить уведомления. Для этого он может перейти в «Настройки» > «Уведомления» и проверить, включена ли функция «Обновления о ваших пропусках» .
Уведомление отображается в области уведомлений и на экране блокировки, если у пользователя включены уведомления для экрана блокировки .
Уведомление имеет следующий неизменяемый формат:
Boarding pass for your flight to class.destination.airportIataCode
Если они нажмут на уведомление и разблокируют устройство, их пропуск появится в приложении Google Wallet.
Если у пользователя несколько посадочных талонов, отображается только тот, который можно использовать в ближайшее время. Если пользователь добавил несколько посадочных талонов в группу, как указано в разделе «Группировка нескольких посадочных талонов» , уведомление показывает только один из талонов в группе. Однако, нажав на него, пользователь может провести пальцем влево и вправо, чтобы увидеть остальные талоны в этой группе.
Уведомление закреплено и не будет автоматически закрываться после того, как пользователь его откроет. Автоматическое закрытие происходит через 60 минут после class.localScheduledDepartureDateTime .
Уведомление об обновлении рейса
При изменении определенных данных в полете пользователи, добавившие один или несколько посадочных талонов, получают push-уведомление на свои устройства. Это происходит только при соблюдении определенных условий.
Терминал отправления и выход на посадку
Если вы изменяете class.origin.terminal или class.origin.gate , и выполняется следующее условие, отправляется уведомление об изменении поля.
- До начала
class.localScheduledDepartureDateTimeосталось менее трех часов.
Уведомление имеет следующий формат: «Авиакомпания Sample Airlines обновила номер вашего выхода на посадку до A1». Формат изменить нельзя.
Время посадки и время отправления
Если вы измените class.localBoardingDateTime или class.localEstimatedOrActualDepartureDateTime , и будут выполнены указанные ниже условия, будет отправлено уведомление об изменении значения поля.
- До начала
class.localScheduledDepartureDateTimeосталось менее 24 часов. - Соответствующее время изменяется как минимум на 10 минут или более.
Уведомление имеет следующий формат: «Авиакомпания Sample Airlines обновила время посадки на 18:00». Формат или язык изменить нельзя.