2016-10-21 2 views
0

Я использую мобильный телефон amazon sns для отправки push-уведомлений. Для регистрации токена устройства с amazon я использую CreatePlatformEndpoint.Amazon sns mobile push CreatePlatformEndpoint создает несколько конечных точек с одним и тем же токеном и данными пользователя

Согласно амазонки документации (http://docs.aws.amazon.com/sns/latest/api/API_CreatePlatformEndpoint.html):

Действие CreatePlatformEndpoint идемпотентна, поэтому, если запрашивающая уже владеет конечной точки с тем же устройством токен и атрибуты, ARN этой конечной точки возвращается без создания новой конечной точки.

Но когда я использую CreatePlatformEndpoint, я могу регистрировать один и тот же токен с одинаковыми атрибутами (данные пользователя) несколько раз (до 3 раз). Не способен понять это поведение.

ответ

0

chetna bhandari,

У меня была эта проблема. У меня есть приложение для платформы iOS (APNS), а другое - для Android (GCM). Для iOS метод createPlatformEndpoint работает отлично. Но для Android создает кратные конечные точки (до 3, как и вы) с одним и тем же токеном. В следующий раз, когда я попытался использовать createPlatformEndpoint, выдается исключение.

Правильный способ сделать это - сохранить конечную точку в приложении. Если он еще не сохранен, создайте и сохраните.

Затем, псевдо-код:

retrieve the latest device token from the mobile operating system 
if (the platform endpoint ARN is not stored) 
    # this is a first-time registration 
    call create platform endpoint 
    store the returned platform endpoint ARN 
endif 

call get endpoint attributes on the platform endpoint ARN 

if (while getting the attributes a not-found exception is thrown) 
    # the platform endpoint was deleted 
    call create platform endpoint with the latest device token 
    store the returned platform endpoint ARN 
else 
    if (the device token in the endpoint does not match the latest one) or 
     (get endpoint attributes shows the endpoint as disabled) 
    call set endpoint attributes to set the latest device token and then 
enable the platform endpoint 
    endif 
endif 

Вы можете увидеть в этой ссылке: Create a Platform Endpoint and Manage Device Tokens

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