REST를 통한 사용자의 프레즌스 업데이트
이 항목에서는 리치 프레즌스 문자열을 업데이트하는 예제 코드를 제공합니다.
타이틀에서 리치 프레즌스를 업데이트하려면 JSON 개체에 적절한 매개 변수를 이용하여 Write Title
URI를 호출하면 됩니다.
이 RESTful 호출은 Xbox 서비스 API로도 래핑됩니다. 이 호출과 관련된 API에 대한 자세한 내용은 XblPresenceSetPresenceAsync를 참조하세요.
URI는 다음과 같습니다.
POST /users/xuid({xuid})/devices/current/titles/current
다음 필드는 리치 프레즌스 문자열을 설정하기 위한 필드입니다. 다른 선택적 필드는 타이틀에 대한 쓰기 프레즌스와 관련이 있지만 이 항목에는 나열되지 않습니다.
TitleRequest 개체
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
Activity | ActivityRequest | 아니요 | 타이틀 내 정보를 설명하는 레코드(리치 프레즌스 및 미디어 정보, 사용 가능한 경우) |
ActivityRequest 개체
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
richPresence | RichPresenceRequest | 아니요 | 사용할 리치 프레즌스 문자열의 friendlyName |
RichPresenceRequest 개체
속성 | 유형 | 필수 | 설명 |
---|---|---|---|
Id | 문자열 | 예 | 사용할 리치 프레즌스 문자열의 friendlyName |
Scid | 문자열 | 예 | 리치 프레즌스 문자열이 정의된 위치를 알려주는 scid |
예를 들어 xuid가 12345인 사용자의 리치 프레즌스 업데이트를 위해 호출은 다음과 같습니다.
POST /users/xuid(12345)/devices/current/titles/current
JSON 본문은 다음과 같습니다.
{
activity:
{
richPresence:
{
id:"playingMap",
scid:"0000-0000-0000-0000-01010101"
}
}
}
래퍼 API를 사용하는 경우에는 XblPresenceSetPresenceAsync를 호출하게 됩니다.
Xbox 플레이어 데이터를 최신 상태로 유지하는 경우 데이터가 변경될 때마다 리치 프리젠스 문자열을 재설정하여 빈칸을 채울 필요가 없습니다. 이전 예제에서는 현재 맵이 사용되고 있습니다.
프레즌스는 사용자가 현재 값을 채우기 위해 문자열을 읽으려고 할 때 Xbox 플레이어 데이터에서 데이터를 검색합니다. 플레이어가 한 맵에서 다른 맵으로 전환하는 경우에도 Xbox 플레이어 데이터로 적절한 이벤트를 보내는 한 게임에서 리치 프레즌스 문자열을 재설정할 필요가 없습니다.
데이터가 Xbox 플레이어 데이터 시스템을 통해 마이그레이션되는 데 몇 초 정도 걸릴 수 있습니다.
누군가가 사용자 12345의 리치 프레즌스를 읽으려고 하면 서비스는 요청 중인 로케일을 살펴보고 문자열을 반환하기 전에 적절하게 포맷합니다. 이 경우에는 사용자가 en-US 문자열을 읽으려고 한다고 가정하겠습니다.
리치 프레즌스 읽기는 다음과 같이 작동합니다.
GET /users/xuid(12345)?level=all
이 호출에 대한 자세한 내용은 GET (/users/xuid({xuid}))
을(를) 참조하세요.
이에 대한 래퍼 API는 XblPresenceGetPresenceAsync 또는 XblPresenceGetPresenceForMultipleUsersAsync입니다.
이전 예제에서는 xuid가 12345인 사용자의 PresenceRecord
을(를) 요청했습니다.
또한 세부 정보 수준을 all
(으)로 요청했습니다.
all
을(를) 지정하지 않은 경우 리치 프레즌스는 반환되지 않습니다. 대신 all
은(는) JSON 응답에서 다음을 반환합니다.
{
xuid:"12345",
state:"online",
devices:
[
{
type:"D",
titles:
[
{
id:"12345",
name:"Buckets are Awesome",
lastModified:"2022-08-17T07:15:23.4930000",
placement: "full",
state:"active",
activity:
{
richPresence:"Playing on map:Mountains"
}
}
]
}
]
}