Microsoft Store에 요청 보내기
Windows 10 버전 1607부터 Windows SDK는 Windows.Services.Store 네임스페이스의 Microsoft Store 관련 작업(예: 앱에서 바로 구매)을 위한 API를 제공합니다. 그러나 OS 릴리스 간에 스토어를 지원하는 서비스가 지속적으로 업데이트, 확장 및 개선되고 있지만 일반적으로 새 API는 주요 OS 릴리스 동안에만 Windows SDK에 제공됩니다.
새 버전의 Windows SDK가 릴리스되기 전까지 UWP(유니버설 Windows 플랫폼) 앱에 새 스토어 작업을 유연하게 제공할 수 있도록 SendRequestAsync 메서드가 제공됩니다. 이 메서드를 사용하여 아직 Windows SDK 최신 릴리스에 해당 API가 제공되지 않는 새 작업에 대한 요청을 스토어로 보낼 수 있습니다.
참고 항목
SendRequestAsync 메서드는 Windows 10 버전 1607 이상을 대상으로 하는 앱에만 사용할 수 있습니다. 이 메서드에서 지원하는 요청 중 일부는 Windows 10 버전 1607 이후 릴리스에서만 지원됩니다.
SendRequestAsync는 StoreRequestHelper 클래스의 정적 메서드입니다. 이 메서드를 호출하려면 이 메서드에 다음 정보를 전달해야 합니다.
- 작업을 수행하려는 사용자에 대한 정보를 제공하는 StoreContext 개체. 이 개체에 대한 자세한 내용은 StoreContext 클래스 시작을 참조하세요.
- 스토어로 보낼 요청을 식별하는 정수.
- 요청에서 모든 인수를 지원하는 경우 요청과 함께 전달할 인수가 포함된 JSON 형식의 문자열도 전달할 수 있습니다.
다음 예제에서는 이 메서드의 호출 방법을 보여 줍니다. 이 예제에는 Windows.Services.Store 및 System.Threading.Tasks 네임스페이스에 대한 using 문이 필요합니다.
public async Task<bool> AddUserToFlightGroup()
{
StoreSendRequestResult result = await StoreRequestHelper.SendRequestAsync(
StoreContext.GetDefault(), 8,
"{ \"type\": \"AddToFlightGroup\", \"parameters\": { \"flightGroupId\": \"your group ID\" } }");
if (result.ExtendedError == null)
{
return true;
}
return false;
}
현재 SendRequestAsync 메서드를 통해 제공되는 요청에 대한 내용은 다음 섹션을 참조하세요. 새 요청에 대한 지원이 추가되면 이 문서가 업데이트될 것입니다.
앱 내 평점 및 리뷰 요청
SendRequestAsync 메서드에 요청 정수 16을 전달하여 고객에게 앱에 대한 평점을 지정하고 리뷰를 제출하도록 요청하는 대화 상자를 앱에서 프로그래밍 방식으로 실행할 수 있습니다. 자세한 내용은 앱에서 평점 및 리뷰 대화 상자 표시를 참조하세요.
플라이트 그룹 시나리오에 대한 요청
Important
이 섹션에서 설명하는 모든 플라이트 그룹 요청은 현재 대부분의 개발자 계정에서 사용할 수 있습니다. Microsoft에서 개발자 계정을 특별히 프로비전하지 않는 한 이러한 요청은 실패합니다.
SendRequestAsync 메서드는 플라이트 그룹에 사용자 또는 디바이스 추가와 같은 플라이트 그룹 시나리오에 대한 일련의 요청을 지원합니다. 이러한 요청을 제출하려면 관련 인수와 함께 제출할 요청을 나타내는 requestKind 매개 변수에 값 7 또는 8을 전달하고 JSON 형식 문자열을 parametersAsJson 매개 변수에 전달합니다. 또한 이 메서드는 PFN을 BigID(디스플레이 카탈로그의 ProductID)로 매핑하는 요청을 지원합니다. 이 요청을 제출하려면 requestKind 매개 변수에 값 9를 전달합니다. 이러한 requestKind 값은 다음과 같은 차이점이 있습니다.
요청 종류 값 | 설명 |
---|---|
7 | 요청은 현재 디바이스의 컨텍스트에서 수행됩니다. 이 값은 Windows 10 버전 1703 이상에만 사용할 수 있습니다. |
8 | 요청은 현재 스토어에 로그인되어 있는 사용자의 컨텍스트에서 수행됩니다. 이 값은 Windows 10 버전 1607 이상에서 사용할 수 있습니다. |
9 | 요청은 익명 인증을 사용하여 디스플레이 카탈로그에 대한 HTTP 요청을 통해 PackageFamilyName의 BigID(ProductId)를 반환합니다. |
다음 플라이트 그룹 요청은 현재 구현되었습니다.
최상위 플라이트 그룹에 대한 원격 변수 검색
Important
이 요청은 현재 대부분 개발자 계정에서 사용할 수 없습니다. Microsoft에서 개발자 계정을 특별히 프로비전하지 않는 한 이 요청은 실패합니다.
이 요청은 현재 사용자 또는 디바이스의 최상위 플라이트 그룹에 대한 원격 변수를 검색합니다. 이 요청을 보내려면 SendRequestAsync 메서드의 requestKind 및 parametersAsJson 매개 변수에 다음 정보를 전달합니다.
매개 변수 | 설명 |
---|---|
requestKind | 디바이스의 최상위 플라이트 그룹을 반환하려면 7을 지정하고, 현재 사용자 및 디바이스의 최상위 플라이트 그룹을 반환하려면 8을 지정합니다. requestKind 매개 변수에는 8을 사용하는 것이 좋습니다. 왜냐하면 이 값은 현재 사용자와 디바이스의 구성원 전체 중에서 최상위 플라이트 그룹을 반환하기 때문입니다. |
parametersAsJson | 아래 예제에 표시된 데이터를 포함하는 JSON 형식 문자열을 전달합니다. |
다음 예제는 JSON 형식 데이터를 parametersAsJson 매개 변수로 전달하는 것을 보여 줍니다. 형식 필드를 GetRemoteVariables 문자열에 할당해야 합니다. 파트너 센터에서 원격 변수를 정의한 프로젝트 ID에 projectId 필드를 할당합니다.
{
"type": "GetRemoteVariables",
"parameters": "{ \"projectId\": \"your project ID\" }"
}
이 요청을 제출하면 StoreSendRequestResult 반환 값의 Response 속성에 다음 필드가 있는 JSON 형식 문자열이 포함됩니다.
필드 | 설명 |
---|---|
익명 | 부울 값이며, true는 사용자 또는 디바이스 ID가 요청에 없음을 나타내고 false는 사용자 또는 디바이스 ID가 요청에 있음을 나타냅니다. |
이름 | 디바이스 또는 사용자가 속한 최상위 플라이트 그룹의 이름을 포함하고 있는 문자열입니다. |
설정 | 개발자가 플라이트 그룹에 대해 구성한 원격 변수의 이름과 값을 포함하고 있는 키/값 쌍 사전입니다. |
다음 예제에서는 이 요청에 대한 반환 값을 보여 줍니다.
{
"anonymous": false,
"name": "Insider Slow",
"settings":
{
"Audience": "Slow"
...
}
}
플라이트 그룹에 현재 디바이스 또는 사용자 추가
Important
이 요청은 현재 대부분 개발자 계정에서 사용할 수 없습니다. Microsoft에서 개발자 계정을 특별히 프로비전하지 않는 한 이 요청은 실패합니다.
이 요청을 보내려면 SendRequestAsync 메서드의 requestKind 및 parametersAsJson 매개 변수에 다음 정보를 전달합니다.
매개 변수 | 설명 |
---|---|
requestKind | 플라이트 그룹에 디바이스를 추가하려면 7을 지정하고, 현재 스토어에 로그인된 사용자를 플라이트 그룹에 추가하려면 8을 지정합니다. |
parametersAsJson | 아래 예제에 표시된 데이터를 포함하는 JSON 형식 문자열을 전달합니다. |
다음 예제는 JSON 형식 데이터를 parametersAsJson 매개 변수로 전달하는 것을 보여 줍니다. 형식 필드를 AddToFlightGroup 문자열에 할당해야 합니다. 디바이스 또는 사용자를 추가할 플라이트 그룹 ID에 flightGroupId 필드를 할당합니다.
{
"type": "AddToFlightGroup",
"parameters": "{ \"flightGroupId\": \"your group ID\" }"
}
이 요청에 오류가 있으면 StoreSendRequestResult 반환 값의 HttpStatusCode 속성에 응답 코드가 포함됩니다.
플라이트 그룹에서 현재 디바이스 또는 사용자 제거
Important
이 요청은 현재 대부분 개발자 계정에서 사용할 수 없습니다. Microsoft에서 개발자 계정을 특별히 프로비전하지 않는 한 이 요청은 실패합니다.
이 요청을 보내려면 SendRequestAsync 메서드의 requestKind 및 parametersAsJson 매개 변수에 다음 정보를 전달합니다.
매개 변수 | 설명 |
---|---|
requestKind | 플라이트 그룹에서 디바이스를 제거하려면 7을 지정하고, 현재 스토어에 로그인된 사용자를 플라이트 그룹에서 제거하려면 8을 지정합니다. |
parametersAsJson | 아래 예제에 표시된 데이터를 포함하는 JSON 형식 문자열을 전달합니다. |
다음 예제는 JSON 형식 데이터를 parametersAsJson 매개 변수로 전달하는 것을 보여 줍니다. 형식 필드를 RemoveFromFlightGroup 문자열에 할당해야 합니다. 디바이스 또는 사용자를 제거할 플라이트 그룹 ID에 flightGroupId 필드를 할당합니다.
{
"type": "RemoveFromFlightGroup",
"parameters": "{ \"flightGroupId\": \"your group ID\" }"
}
이 요청에 오류가 있으면 StoreSendRequestResult 반환 값의 HttpStatusCode 속성에 응답 코드가 포함됩니다.