크로스플레이 런처 원격 실행 API
개요¶
크로스플레이 런처 원격 실행 API는 크로스플레이 런처로 게임 실행 중 의도치 않게 게임이 종료되는 경우, 실행 중인 PC 목록을 조회하고 특정 PC를 선택하여 원격 실행하는 기능을 제공합니다.
크게 PC 목록 조회 API와 PC 원격 실행 API로 구성됩니다.
사전 조건¶
- Hive SDK v4.24.4.0 이상의 Windows 버전
- Crossplay Launcher 1.0.16.0 이상
기본 동작 플로우¶
-
게임별로 원격 실행 사용여부 설정
Note
현재는 수동으로 원격 실행 사용여부 설정 기능만 지원하며, 자동 설정 기능은 추후 제공 예정입니다.
-
크로스플레이 런처를 통해 Windows PC에서 게임 실행
- 게임에서 PC 목록 조회 API를 호출하여 크로스플레이 런처로 실행 중인 PC 목록 조회
- 조회 결과, PC 목록에서 선택한 PC 정보를 가지고 PC 원격 실행 API를 호출
(선택된 PC로 외부 자동로그인 토큰을 전달합니다.) - 외부 자동 로그인 토큰을 통해 크로스플레이 런처에서 게임 재접속 및 자동로그인 진행
PC 목록 조회 API¶
현재 크로스플레이 런처를 통해 실행 중인 PC이면서, 원격 실행이 가능한 PC 목록을 조회하는 API입니다.
Note
- 토큰 검증 API를 통해 검증하여 유효한 요청일 경우에만 PC 목록 조회가 가능합니다.
Request URL 및 조건¶
구분 | URL 및 조건 |
---|---|
상용 URL | https://api-launcherplay.withhive.com/api/pc/list |
SANDBOX URL | https://sandbox-api-launcherplay.withhive.com/api/pc/list |
HTTP Method | PUT |
Data Format | JSON |
Request header¶
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
Content-Type | application/json | String | Y |
Authorization | Bearer 토큰키 (로그인 성공 후 반환된 토큰키) | String | Y |
Request header sample¶
Request body¶
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
appId | 로그인한 게임의 AppID | String | Y |
playerId | 로그인 성공 후 반환된 V4인증 PlayerID | String | Y |
did | 로그인 성공 후 반환된 DID | String | Y |
Request body sample¶
{
"appId" : "com.com2us.hivesdk.normal.freefull.google.global.android.common",
"playerId" : "20000023036",
"did" : "304166094"
}
Response body¶
필드명 | 설명 | 타입 | |
---|---|---|---|
code | 응답 결과 코드 | Integer | |
msg | 응답 결과 메시지 | String | |
data | 실행 가능한 PC 목록 | Array | |
ㄴ | pc_name | PC명 | String |
ㄴ | did | 기기 정보 | String |
Response body sample¶
{
"code": 100,
"msg": "success",
"data": [
{
"pc_name" : "pc1",
"did" : "304162817",
},
{
"pc_name" : "pc2",
"did" : "304166094"
},
...
]
}
응답 코드 명세¶
code | msg | description |
---|---|---|
100 | success | 성공 |
101 | success(not exist) | 성공 └ 단, 현재 원격 실행 가능한 리스트가 없으므로 data는 리턴하지 않음 |
400 | fail(Authorization parameter error) | 유효하지 않은 헤더 파라미터 └ Authorization |
401 | fail(method error) | 유효하지 않은 HTTP METHOD로 요청 |
402 | fail(request parameter error) | request 파라미터가 존재하지 않음 |
403 | fail(appId parameter error) | 유효하지 않은 파라미터 └ appId |
404 | fail(playerId parameter error) | 유효하지 않은 파라미터 └ playerId |
405 | fail(did parameter error) | 유효하지 않은 파라미터 └ did |
500 | fail(hiveCertificationKey error) | 해당하는 게임 정보(Hive 인증키) 조회 실패 |
501 | fail(####) | 그 외 인증서버 검증 진행 중, #### 에러가 발생 |
502 | fail(####) | 그 외 PC목록 조회 진행 중, #### 에러가 발생 |
503 | fail(####) | PC 목록 조회를 위해 Redis 접근 시, #### 에러가 발생 |
900 | fail(curl error - ####) | 인증서버 검증 진행 중, api 호출 시 curl 에러 발생(#### 에러 발생) |
901 | fail(api error - ####) | 인증서버 검증 실패(#### 에러 발생) |
PC 원격 실행 API¶
PC 목록 조회 API 요청 후 조회된 PC 목록 중 선택된 PC에서 원격 실행하도록 토큰 정보를 전달하는 API입니다.
Note
- 해당 API에서는 선택된 PC로 외부 자동로그인 토큰을 전달하며, 실제 원격 실행(게임접속 및 자동로그인)은 크로스플레이 런처에서 동작합니다.
- 토큰 검증 API를 통해 검증하여 유효한 요청일 경우만 이용 가능합니다.
Request URL 및 조건¶
구분 | URL 및 조건 |
---|---|
상용 URL | https://api-launcherplay.withhive.com/api/pc/remoteplay |
SANDBOX URL | https://sandbox-api-launcherplay.withhive.com/api/pc/remoteplay |
HTTP Method | POST |
Data Format | JSON |
Request header¶
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
Content-Type | application/json | String | Y |
Authorization | Bearer 토큰키 (로그인 성공 후 반환된 토큰키) | String | Y |
Request header sample¶
Request body¶
필드명 | 설명 | 타입 | 필수여부 |
---|---|---|---|
appId | 로그인한 게임의 AppID | String | Y |
playerId | 로그인 성공 후 반환된 V4인증 PlayerID | String | Y |
did | 로그인 성공 후 반환된 DID | String | Y |
idpUserId | 로그인 성공 후 IDP에서 주는 회원 ID값 | String | Y |
idpIndex | IDP INDEX 정보 1: HIVE 2: Facebook 3: GOOGLE 9: APPLE | Integer | Y |
selected_did | /api/pc/list 조회 결과 중, 선택한 PC의 did | String | Y |
selected_pcName | /api/pc/list 조회 결과 중, 선택한 PC의 pc_name | String | Y |
Request body sample¶
{
"appId" : "com.com2us.hivesdk.normal.freefull.google.global.android.common",
"playerId" : "20000023036",
"did" : "304166094",
"idpUserId" : "68261324",
"idpIndex" : 1,
"selected_did" : "304162817",
"selected_pcName" : "pc1"
}
Response body¶
필드명 | 설명 | 타입 |
---|---|---|
code | 응답 결과 코드 | Integer |
msg | 응답 결과 메시지 | String |
Response body sample¶
응답 코드 명세¶
code | msg | description |
---|---|---|
100 | success | 성공 |
400 | fail(Authorization parameter error) | 유효하지 않은 헤더 파라미터 └ Authorization |
401 | fail(request parameter error) | request 파라미터가 존재하지 않음 |
402 | fail(appId parameter error) | 유효하지 않은 파라미터 └ appId |
403 | fail(playerId parameter error) | 유효하지 않은 파라미터 └ playerId |
404 | fail(did parameter error) | 유효하지 않은 파라미터 └ did |
405 | fail(idpUserId parameter error) | 유효하지 않은 파라미터 └ idpUserId |
406 | fail(idpIndex parameter error) | 유효하지 않은 파라미터 └ idpIndex |
407 | fail(selected_did parameter error) | 유효하지 않은 파라미터 └ selected_did |
408 | fail(selected_pcName parameter error) | 유효하지 않은 파라미터 └ selected_pcName |
409 | fail(method error) | 유효하지 않은 HTTP METHOD로 요청 |
500 | fail(hiveCertificationKey error) | 해당하는 게임 정보(Hive 인증키) 조회 실패 |
501 | fail(####) | 인증서버 검증 진행 중, #### 에러가 발생 |
502 | fail(current not exist or not available) | 선택된 PC 정보가 현재 연결되어있지 않아 실패 |
503 | fail(####) | 선택된 PC 정보 확인을 위해 Redis 접근 시, #### 에러가 발생 |
504 | fail(more than 2 exist) | 선택된 PC 정보에 해당하는 연결이 2개 이상일 경우 실패 └ 참고 : playerId, did, PC명 세 가지가 모두 동일할 경우에 발생 |
505 | fail(####) | 선택된 PC 정보 확인 진행 중, #### 에러가 발생 |
506 | fail(####) | 외부 자동 로그인 토큰 관련 정보(enc_idp 및 web_idp_token) 획득 진행 중, #### 에러가 발생 |
507 | fail(publish error) | 선택된 PC에 외부 자동 로그인 토큰 전달 실패 ᄂ 참고 : 메시지를 전달받은 PC의 수가 1보다 작을 때 발생(redis publish 결과값) |
508 | fail(####) | 선택된 PC에 외부 자동 로그인 토큰 전달을 위해 Redis 접근 시, #### 에러가 발생 |
509 | fail(####) | 선택된 PC에 외부 자동 로그인 토큰 전달 진행중, #### 에러가 발생 |
900 | fail(curl error - ####) | 인증서버 검증 진행 중, api 호출 시 curl 에러 발생(#### 에러 발생) |
901 | fail(api error - ####) | 인증서버 검증 실패(#### 에러 발생) |
902 | fail(curl error - ####) | 외부 자동 로그인 토큰 획득을 위한 enc_idp 값 획득 진행 중, api 호출 시 curl 에러 발생(#### 에러 발생) |
903 | fail(api error - ####) | 외부 자동 로그인 토큰 획득을 위한enc_idp 값 획득 실패(#### 에러 발생) |
904 | fail(curl error - ####) | 외부 자동 로그인 토큰(web_idp_token) 획득 진행 중, api 호출 시 curl 에러 발생(#### 에러 발생) |
905 | fail(api error - ####) | 외부 자동 로그인 토큰(web_idp_token) 획득 실패(#### 에러 발생) |