я использую onesignal Впервые в моем проекте. Я должен отправить уведомление определенным пользователям (где бы пользователь ни вошел в систему на устройстве Chrome или Android) о некоторых событиях, например, WhatsApp отправляет уведомления как на мобильный, так и на веб-сайт, и только если пользователь вошел в систему. Я успешно отправил уведомление всем пользователи. После некоторого R&На сайте OneSignal я узнаю, что для этого мне нужно отправлять уведомления конкретному игроку. Но вот некоторые мои вопросы / сомнения.
Если кто-то может объяснить эти моменты, а также описать рабочий процесс для сохранения playerid (когда и как) в моей базе данных, это будет оценено.
Просто сохраните playerIds в базу данных с активностью входа. когда они выходят из системы, просто запускают запрос, связанный с удалением playerIds из базы данных.
Не так давно я разработал приложение для Android, которое использовало OneSignal для своих уведомлений. Это было разработано в C #, однако может быть полезно для вас.
Я надеюсь, что эти ответы помогут:
-Идентификатор игрока генерируется классом OneSignal, и поэтому его необходимо извлекать с помощью функции обратного вызова, такой как код, показанный ниже:
void CheckPushRegistration(){
OneSignal.GetIdsAvailable(IdsAvailable); //Passes the 'callback'
}
private void IdsAvailable(string userID, string pushToken) {
player_id = userID;
player_token = pushToken;
//Make a request to my server to store this information along with device id
//For easy reference
}
Примечание. В приведенном выше коде я вызываю функцию «CheckPushRegistration» прямо в начале работы приложения. После запуска он отправит информацию в функцию «IdsAvailable». После этого я делаю быстрый веб-запрос на мой сервер, чтобы сохранить уникальный идентификатор игрока, идентификатор устройства и токен.
-Идентификатор игрока, по крайней мере, в Android основан на устройствах, связанных аккаунт Google Play, если я не ошибаюсь. Это означает, что если пользователь меняет учетную запись, он будет считаться / действовать как другой идентификатор игрока (однако я могу ошибаться здесь)
Я предполагаю, что OneSignal имеет некоторый способ определения идентификатора игрока или идентификатора пользователя в браузерах / других устройствах. Однако можно с уверенностью предположить, что они всегда будут уникальными и не будут выполняться в зависимости от учетной записи пользователя.
-Как упоминалось ранее, вы сохраняете его в своей базе данных, делая простой веб-запрос к вашему REST API, сохраняя только информацию об идентификаторе устройства, идентификаторе игрока и токене. Возможно, добавьте проверку, чтобы увидеть, если идентификатор устройства еще не в системе. Я бы порекомендовал использовать идентификатор устройства для идентификации пользователя.
Вы также спросили, как вы узнаете, правильно ли отправлено уведомление или безопасно ли его отправлять. К сожалению, API OneSignal сможет только сообщать о состоянии уведомлений.
Когда вы отправите уведомление, вы получите идентификатор уведомления обратно с сервера. Вы можете использовать это на более позднем этапе, чтобы проверить, было ли доставлено уведомление, было ли оно просмотрено, и было ли оно нажато.
Надеюсь, это поможет пролить свет на систему OneSignal?
Идентификатор игрока не является идентификатором устройства,
это UUID (уникальный универсальный идентификатор), который дает OneSignal
Управление несколькими пользователями на одном устройстве
Для управления несколькими пользователями, которые совместно используют устройство, вам нужно будет определить, когда пользователь A находится на устройстве, и отправлять им свои уведомления только тогда, когда они находятся на устройстве, в противном случае пользователь B получит их.
Метод А: Пометка
Один из способов справиться с этим — пометить пользователя, когда он войдет в приложение, затем вы можете настроить таргетинг на него по тегу, и он получит уведомление, если этот тег установлен. Как только они выйдут из приложения, вы можете удалить тег.
Таким образом, если пользователь B использует устройство, он получит свой собственный тег и не получит уведомление пользователя A.
Таким образом, пользователи будут получать уведомления только тогда, когда они вошли в приложение.
Метод B: CRM или база данных
Другой вариант — сохранить на вашем сервере идентификаторы игроков для устройств, на которых в данный момент зарегистрирован пользователь, а затем использовать наш API для отправки уведомлений с помощью параметра таргетинга API include_player_ids.
для более подробной информации проверьте это Один сигнальный идентификатор игрока