Поделиться через


Использование API REST с устройства

 

При использовании интерфейсов API REST на мобильном устройстве, распространенным шаблоном является хранения registrationIdрегистраций, связанных с устройством в локальном хранилище. Это дает возможность обновлять теги и информацию о канале с помощью одного вызова обновления.

Поскольку мобильные подключения не всегда надежны, лучше избегать создания новой регистрации без возможность хранения registrationId в локальном хранилище. Это может привести к многократной регистрации устройства и получению повторяющихся уведомлений. Этого можно добиться с помощью Создание идентификатора регистрации и Создание или обновление регистрации интерфейсов API REST.

Первый API возвращает registrationId без фактического создания регистрации. Когда идентификатор безопасно хранятся на устройстве хранения, устройство может вызвать Создание или обновление регистрации API.

Важно!

Чтобы локальное хранилище устройства было синхронизировано с центром даже в случае потери данных локального хранилища, рекомендуется удалять все регистрации в текущем канале (т. е. ChannelURI, маркер устройства или registrationId службы GCM) каждый раз, когда локальное хранилище не инициализируется.

Создает следующий код Javascript registrationId с помощью jQuery:

var createRegistrationId = function() { var registrationPath = hub.hubPath + "/Registrations"; var serverUrl = hub.endpoint + registrationPath + "?api-version=2015-01"; var token = getSelfSignedToken(serverUrl,sasKeyValue, sasKeyName, 60); var deferred = $.Deferred(); $.ajax({ type : "POST", url : serverUrl, headers : { "Authorization" : token }, }).done(function(data, status, response) { var location = response.getResponseHeader("Content-Location"); deferred.resolve(location); }).fail(function(response, status, error) { console.log("Error: " + error); deferred.reject("Error: " + error); }); return deferred.promise(); };  

Операции создания или обновления ("Вставка") — это простой PUT вызова для возвращенного расположения. Текст XML регистрации можно составить так же, как описано в Использование интерфейсов API REST из внутренней службы разделе.

В приведенном ниже примере кода Javascript показана операция "обновление или вставка".

var updateRegistration = function(location, registration) { var registrationPayload = buildCreatePayload(registration); var serverUrl = location; var token = getSelfSignedToken(serverUrl, sasKeyValue, sasKeyName, 60); var deferred = $.Deferred(); return $.ajax({ type : "PUT", url : serverUrl, headers : { "Content-Type" : "application/atom+xml", "Authorization" : token, }, data : registrationPayload }).done(function(data, status, response) { var location = response.getResponseHeader("Content-Location"); deferred.resolve(location); }).fail(function(response, status, error) { console.log("Error: " + error); deferred.reject("Error: " + error); }); return deferred.promise(); };