다음을 통해 공유


장치에서 REST API 사용

 

일반적인 패턴을 저장 하는 모바일 장치에서 REST Api를 사용 하는 경우는 registrationIds의 로컬 저장소에 장치와 연결 된 등록 합니다. 이렇게 하면 단일 업데이트 호출을 통해 태그 및 채널 정보를 업데이트할 수 있습니다.

모바일 연결 되지 않으므로 항상 신뢰할 수 있는,이를 저장할 수는 없지만 새 등록을 만들어 좋습니다는 registrationId 로컬 저장소에 저장 합니다. 이렇게 하지 않으면 장치가 여러 번 등록되어 알림이 중복 수신될 수 있습니다. 사용 하 여이 수행할 수는 등록 ID 만들기등록 만들기 또는 업데이트 REST Api입니다.

첫번째 API 반환 된 registrationId 실제로 등록을 만들지 않고도 합니다. 장치 ID 장치 저장소에 안전 하 게 저장 된 때를 호출할 수는 등록 만들기 또는 업데이트 API입니다.

중요

로컬 저장소 데이터가 손실되더라도 장치 로컬 저장소를 허브와 동기화 상태로 유지하려면 로컬 저장소가 초기화되지 않을 때마다 현재 채널에 대한 모든 등록(ChannelURI, 장치 토큰 또는 GCM registrationId)을 삭제하는 것이 좋습니다.

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

만들기 또는 업데이트 작업 ("upsert")은 단순 PUT 반환된 된 위치에서 호출 합니다. 설명한 대로 동일한 방식으로 등록 XML 본문을 생성할 수는 백엔드에서 REST API 사용 섹션.

다음 Javascript 코드 예제는 "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(); };