Share via


Utilizzo delle API REST dal dispositivo

 

Quando si utilizzano API REST da un dispositivo mobile, un modello comune consiste nel memorizzare i registrationId delle registrazioni associate al dispositivo nell'archivio locale. Ciò consente di aggiornare i tag e le informazioni del canale con una sola chiamata di aggiornamento.

Poiché le connessioni mobili non sono sempre affidabili, è preferibile evitare di creare una nuova registrazione senza prima memorizzare il registrationId nell'archivio locale, per evitare che vengano eseguite più registrazioni del dispositivo con la conseguente generazione di notifiche duplicate. A tale scopo è possibile utilizzare le API REST Creare ID di registrazione e Creare o aggiornare la registrazione.

La prima API restituisce un registrationId senza creare di fatto una registrazione. Dopo la memorizzazione sicura dell'ID nell'archivio del dispositivo, il dispositivo può chiamare l'API Creare o aggiornare la registrazione.

Importante

Per mantenere sincronizzati l'archivio locale del dispositivo e l'hub, anche in caso di perdita dei dati di archiviazione locali, è consigliabile eliminare tutte le registrazioni con il canale corrente (cioè il ChannelURI, il token di dispositivo o il registrationId GCM) ogni volta che l'archivio locale non viene inizializzato.

Il seguente codice Javascript crea un registrationId utilizzando 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(); };  

L'operazione di creazione o aggiornamento ("upsert") è una semplice chiamata PUT sul percorso restituito. È possibile creare il corpo XML della registrazione con la stessa procedura descritta nella sezione Utilizzo di API REST da un back-end.

Il seguente esempio di codice Javascript illustra un'operazione "upsert":

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(); };