자사 및 제3자를 위한 이 단계별 가이드에서는 WNS(Windows 푸시 알림 서비스) 원시 알림과 애플리케이션 연속성(다시 시작)을 통합하는 방법에 대한 자세한 개요를 제공합니다. 여기에는 필수 구성 요소, 관련 공용 설명서에 대한 참조 및 채널 URI에 대한 POST 요청을 만들기 위한 코드 조각이 포함됩니다.
Windows에서 온보딩 다시 시작하기
다시 시작은 LAF(제한된 액세스 기능)입니다. 이 기능에 액세스하려면 Windows에서 애플리케이션을 사용하도록 설정하려면 Microsoft의 승인을 받아야 합니다.
액세스를 요청하려면 다음 정보를 전자 메일 wincrossdeviceapi@microsoft.com 로 보냅니다.
- 애플리케이션 WNS 등록 상태 및 애플리케이션 "패키지 SID"를 제공합니다.
- 사용자 환경에 대한 설명입니다.
- 사용자가 Windows PC에서 다시 시작 가능한 작업을 수행하는 애플리케이션의 스크린샷.
Microsoft에서 요청을 승인하는 경우 기능 잠금을 해제하는 방법에 대한 지침을 받게 됩니다. 승인은 통신을 기반으로 합니다.
필수 조건
통합을 진행하기 전에 다음 작업이 완료되었는지 확인합니다.
- WNS(Windows 푸시 알림 서비스)에 애플리케이션 등록: 알림을 받으려면 WNS에 애플리케이션을 등록해야 합니다. 자세한 내용은 Azure Notification Hubs를 사용하여 유니버설 Windows 플랫폼 앱에 알림 보내기 를 참조하세요.
- 액세스 자격 증명 가져오기: Azure Portal에서 SID(패키지 보안 식별자) 및 클라이언트 비밀을 획득합니다.
- 채널 URI 구성: 앱이 알림에 대한 채널 URI를 요청하고 저장할 수 있는지 확인합니다. 자세한 내용은 알림 채널을 요청, 만들기 및 저장하는 방법을 참조하세요.
- WNS 알림은 전송에 XML 페이로드를 사용합니다. 자세한 내용은 앱 알림 콘텐츠를 참조하세요. 이력서의 경우 원시 알림을 사용합니다. Windows 애플리케이션이 wns/raw 알림과 연결된 페이로드를 지원하는지 확인합니다. 자세한 내용은 원시 알림 개요 를 참조하세요.
구현 단계
다음 단계에서는 WNS 원시 알림을 사용하여 애플리케이션 연속성을 통합하는 프로세스를 간략하게 설명합니다.
1단계 - 채널 URI 구성
Windows 애플리케이션에서 채널 URI를 구성하고 앱 서버로 보냅니다. 앱이 알림에 대한 채널 URI를 요청하고 저장할 수 있는지 확인합니다. 자세한 내용은 알림 채널을 요청, 만들기 및 저장하는 방법을 참조하세요.
2단계 - 다시 시작 시나리오 시작
모바일 애플리케이션에서 필요한 애플리케이션 서비스 API를 호출하여 WNS 기반 다시 시작 요청을 시작합니다.
3단계 - HTTP 요청 설정
앱 서버는 모바일 클라이언트에서 API 요청을 받으면 WNS 채널 URI에 대한 POST 요청을 준비합니다. 요청에는 Authorization, Content-Type 및 X-WNS-Type과 같은 필수 헤더가 포함되어야 합니다. 새 헤더를 추가하려면 요청 헤더 구성에 포함합니다.
3.1단계 - 이력서 POST 요청을 보내는 예제
다음 코드 조각에서는 Python 및 JavaScript를 사용하여 이력서 헤더를 사용하여 새 WNS 알림을 보내는 방법을 보여 줍니다.
다음 Python 코드 조각은 애플리케이션 연속성에 필요한 헤더를 사용하여 WNS 원시 알림을 보내는 방법을 보여 줍니다.
import requests
# Define the channel URI
channel_uri = "[URL]"
# Define the notification payload
payload = """
Sample Notification
This is a sample message
"""
# Define the headers
headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": {"title":"Continue call from…","expiry":"300", "type":"1"},
}
# Send the POST request
response = requests.post(channel_uri, data=payload, headers=headers)
# Print the response status
print(f"Response Status: {response.status_code}")
print(f"Response Body: {response.text}")
다음 JavaScript 코드 조각은 애플리케이션 연속성에 필요한 헤더를 사용하여 WNS 원시 알림을 보내는 방법을 보여 줍니다.
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "1"
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
"X-WNS-RawNotificationType" 헤더는 보내는 원시 알림의 유형을 지정합니다. 일반적으로 이 헤더를 포함할 필요는 없지만 "이력서"와 같은 다양한 용도로 알림을 분류하는 데 도움이 됩니다. 이 헤더에 사용할 수 있는 값에는 Windows에서 애플리케이션 연속을 알리는 "wns/raw/resume" 와 같은 형식이 포함될 수 있습니다.
"X-WNS-ResumeMetadata" 헤더는 보내는 이력서 알림에 대한 메타데이터를 제공합니다. 꼭 필요한 것은 아니지만 타이틀 또는 만료 시간과 같은 정보를 추가하여 알림을 향상시킵니다. 메타데이터를 JSON/Dictionary 개체로 전달하고(다른 형식은 유효성 검사 예외를 throw함) 다음과 같은 필드를 포함할 수 있습니다.
- title: 알림에 대한 설명이 포함된 제목입니다(예: "통화 계속하기...").
- expiry: 알림의 수명(초)(예: 5분 동안 "300")입니다.
- 형식: 알림 유형 - 새 이력서 요청의 경우 1, 삭제를 위해 2 (누락 시, 작업 없음).
다음 JavaScript 코드 조각은 이력서 알림을 업데이트하는 데 필요한 헤더를 사용하여 WNS 원시 알림을 보내는 방법을 보여 줍니다.
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "2" // 2-represents update type.
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
다음 JavaScript 코드 조각은 이력서 알림을 삭제하는 데 필요한 헤더를 사용하여 WNS 원시 알림을 보내는 방법을 보여 줍니다.
const axios = require('axios');
// Define the channel URI
const channelUri = "[URL]";
// Define the notification payload
const payload = `Sample Notification
This is a sample message`;
// Define the headers
const headers = {
"Content-Type": "application/octet-stream",
"X-WNS-Type": "wns/raw",
"Authorization": "Bearer YOUR_ACCESS_TOKEN",
"X-WNS-RawNotificationType": "wns/raw/resume",
"X-WNS-ResumeMetadata": JSON.stringify({
title: "Continue call from…",
expiry: "300",
type: "3" // 3-represents delete type.
})
};
// Send the POST request
axios.post(channelUri, payload, { headers })
.then(response => {
console.log(`Response Status: ${response.status}`);
console.log(`Response Body: ${response.data}`);
})
.catch(error => {
console.error(`Error Status: ${error.response?.status}`);
console.error(`Error Body: ${error.response?.data}`);
});
두 헤더 모두 애플리케이션의 기능 요구 사항에 맞게 원시 알림을 유연하게 조정할 수 있습니다.
4단계 - 구현 유효성 검사
애플리케이션이 알림을 성공적으로 등록하고 이력서 헤더가 POST 요청에 포함되어 있는지 확인합니다. vscode REST 클라이언트, Postman 또는 Fiddler와 같은 도구를 사용하여 HTTP 요청 및 응답을 검사할 수 있습니다.
Visual Studio Code REST 클라이언트 확장을 사용하여 요청을 보내는 예제는 다음과 같습니다.
X-WNS-RawNotificationType 헤더 및 X-WNS-ResumeMetadata 헤더는 애플리케이션 연속성을 위해 필요합니다.
POST {{channel_uri}}
Content-Type: application/octet-stream
X-WNS-Type: wns/raw
X-WNS-RequestForStatus: true
X-WNS-RawNotificationType: wns/raw/resume
X-WNS-ResumeMetadata: {"title": "Continue call from...", "expiry": "300", "type": "1"}
Authorization: Bearer {{bearer}}
[{"hello"}]
VS Code REST 클라이언트의 응답은 기존 알림 응답과 동일한 형식으로 표시됩니다. 상태 코드에 대한 자세한 내용은 참조 링크를 참조하세요. WNS(Windows 푸시 알림 서비스) 네이티브 알림 보내기.
결론
이 가이드에 설명된 단계에 따라 자사 및 제3자가 WNS 알림에 사용자 지정 헤더를 성공적으로 추가할 수 있습니다. 원활한 통합을 보장하기 위해 모든 필수 구성 요소를 충족하고 철저히 테스트해야 합니다.
구현에 대한 쿼리 또는 지원은 다음의 팀에 문의하세요.
메일 주소: wincrossdeviceapi@microsoft.com
원활한 통합 프로세스를 보장하기 위해 여기에 있습니다.
관련 콘텐츠
- 로우 알림 개요
- 알림 채널 요청, 만들기 및 저장하는 방법
- WNS 개요 - Azure Notification Hubs를 사용하여 유니버설 Windows 플랫폼 앱에 알림 보내기
Windows developer