-1

У меня есть вопросы. Как я могу обрабатывать ситуацию, когда GCM возвращает канонический идентификатор. Я нашел несколько вопросов о StackOverflow, но решения нет. Документация Amazon SNS о управлении маркером говорит о том, что SNS обрабатывает эту ситуацию автоматически. Когда GCM возвратит каноническое id amazon SNS, обновите старые токены с новыми. Но как я могу узнать об этом? У меня есть собственная база данных со всеми зарегистрированными токенами и конечными точками. Я не знаю, был ли токен амазонки обновлен или нет, и отправьте уведомление всем из них. Как результат много повторяющихся сообщений на устройстве.Ручка GCM Canonical Id с Amazon SNS

P.S. Сервер должен поддерживать несколько устройств для одной учетной записи.

+0

Любые комментарии или просто минусы? – thealeksandr

ответ

0

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

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

Согласно документации Google,

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

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

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

Кроме того, если устройство получает повторяющиеся уведомления они могут помочь: -

  • Это может быть из-за ошибки в клиентском приложении запускающего несколько регистраций для одного устройства. Поэтому убедитесь, что одно и то же устройство не регистрируется много раз.

  • Кроме того, если вы удалите приложение с устройства и попробуете отправить push на это устройство, вы получите сообщение об ошибке NotRegistered с сервера GCM. Затем ваш сервер должен удалить токен регистрации и не использовать этот токен для повторного ввода сообщений.

P.S. Даже если один пользователь имеет несколько устройств, ваши сопоставления db должны быть такими, что: - у каждого устройства пользователя будет другой регистрационный токен, и каждый токен будет сопоставлен одному пользователю. Поскольку токены различны, получение одного и того же сообщения, нажатого на все устройства пользователя, не будет проблемой.

Надеюсь, это поможет! Ура!

Смежные вопросы