EAS를 사용하지 않고 네이티브 플랫폼의 토큰으로 eos로그인할 때 eos sdk 사용 질문입니다

EAS를 사용하지 않고 네이티브 플랫폼의 토큰으로 eos로그인할 때 EOS_Lobby_SendInvite와 같은 기능을 사용할 수 있을까요?

로비는 eos 로비를 사용하고 있습니다

현재는 EOS_InvalidUser를 결과값으로 받고 있습니다

[Attachment Removed]

재현 방법[Attachment Removed]

안녕하세요.

Lobby, Session 같은 EOS Game Services는 Epic 계정(EAS)이 아니라 ProductUserId(PUID)로 동작합니다.

PUID는 EOS_Connect_Login을 통해 네이티브 플랫폼 토큰 만으로 발급 가능하므로, EAS 없이도 EOS_Lobby_SendInvite는 정상 사용 가능할 것으로 보입니다.

SendInvite에서 EOS_InvalidUser가 발생하는 가장 유력한 원인은 TargetUserId에 유효한 PUID가 아닌 값(Steam ID 등 플랫폼 고유 ID)을 그대로 넘기는 경우로 보입니다.

권장드리는 플로우는 다음과 같습니다.

  1. 상대방이 EOS_Connect_Login + CreateUser를 통해 PUID를 생성한 상태여야 합니다.
  2. 초대하는 쪽에서 EOS_Connect_QueryExternalAccountMappings로 상대의 플랫폼 ID를 PUID로 변환합니다.
  3. 변환된 PUID를 TargetUserId에 넣어 EOS_Lobby_SendInvite를 호출합니다.

상대방이 EOS Connect에 한 번도 로그인한 적이 없다면 PUID가 존재하지 않으므로, 2단계에서 매핑 쿼리가 실패하며 초대가 불가능할 것으로 보입니다.

점검 시에는 EOS_Connect_GetLoggedInUserByIndex로 로컬 PUID 존재 여부와, 타겟 플랫폼 ID의 매핑 쿼리 결과를 확인해 보시면 도움이 될 것 같습니다.

적용 후에도 문제가 재발한다면, 해당 시점의 로그를 첨부해 주시면 원인 파악에 도움이 될 것 같습니다.

감사합니다.

[Attachment Removed]