Skip to content

모듈: context

목차

기능

기능

chooseAsync

chooseAsync(payload?): Promise<void>

플레이어 선택 대화 상자의 컨텍스트를 엽니다. 플레이어가 사용 가능한 컨텍스트를 선택하면 클라이언트는 해당 컨텍스트에 동기화를 시도하고, 성공하면 프로세스가 완료됩니다. 그러나 플레이어가 메뉴를 종료하거나 클라이언트가 새로운 컨텍스트에 동기화에 실패하면 이 프로세스는 완료되지 않습니다.

Wortal.context.chooseAsync()
    .then(console.log(Wortal.context.getId()));

매개변수

이름 유형 설명
payload? ChoosePayload 컨텍스트 선택에 대한 옵션을 정의하는 객체입니다

Returns

Promise<void>

컨텍스트가 전환될 때 해결되는 Promise.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • SAME_CONTEXT
  • NETWORK_FAILURE
  • USER_INPUT
  • PENDING_REQUEST
  • CLIENT_UNSUPPORTED_OPERATION

createAsync

createAsync(playerID?): Promise<void>

현재 플레이어와 특정 플레이어 또는 플레이어 목록 사이의 컨텍스트를 생성할 때 사용할 수 있습니다. 이 API는 다음 세 가지 사용 사례를 지원합니다: 1. 입력이 하나의 playerID인 경우, 특정 플레이어와 현재 플레이어 사이의 컨텍스트를 생성하거나 전환하려는 경우 2. 입력이 여러 playerID 목록인 경우, 모든 플레이어를 포함하는 컨텍스트를 생성하려는 경우 3. 입력이 없는 경우, 친구 선택기(친구 초대 기능)가 로드되어 함께 플레이할 수 있는 컨텍스트를 생성하려는 경우

또한, 플레이어 리스트에 있는 플레이어가 현재 플레이어와 연결되어 있지 않거나, 플레이어가 새로운 컨텍스트 실행을 거부하는 경우 등에 반환되는 Promise는 거부됩니다. 하지만 그렇지 않은 경우, 게임이 새로운 컨텍스트로 전환될 때 Promise는 해결됩니다.

플랫폼: Viber와 Link에서는 한 명의 플레이어만 사용하여 컨텍스트를 생성할 수 있습니다. 플레이어 ID 배열이 전달되면 첫 번째 ID만 사용됩니다.

Wortal.context.createAsync('player123');

매개변수

이름 유형 설명
playerID? string | string[] 컨텍스트를 생성할 플레이어 ID 또는 플레이어 ID 목록. 지정하지 않으면 친구 선택기(친구 초대 기능)가 로드되어 현재 플레이어에게 함께 플레이할 플레이어와 컨텍스트를 생성하도록 요청하며, Link 및 Viber의 경우 하나의 플레이어 ID만 허용합니다.

Returns

Promise<void>

게임이 새로운 컨텍스트로 전환될 때 해결되는 Promise, 그렇지 않으면 거부됩니다.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • SAME_CONTEXT
  • NETWORK_FAILURE
  • USER_INPUT
  • PENDING_REQUEST
  • CLIENT_UNSUPPORTED_OPERATION

getId

getId(): string | null

현재 컨텍스트의 ID를 가져옵니다.

const id = Wortal.context.getId();
console.log(id);

Returns

string | null

현재 컨텍스트의 문자열 ID(있는 경우). 싱글 플레이어이거나 현재 컨텍스트를 지원하지 않는 플랫폼에서 게임을 플레이하는 경우 Null을 반환합니다.


getPlayersAsync

getPlayersAsync(): Promise<ConnectedPlayer[]>

현재 컨텍스트에서 활동 중인 플레이어에 대한 정보(지난 90일 동안 현재 컨텍스트에서 게임을 플레이한 플레이어)가 포함된 ConnectedPlayer 객체의 배열을 가져옵니다.

Wortal.context.getPlayersAsync()
 .then(players => {
   console.log(players.length);
   console.log(players[0].id);
   console.log(players[0].name);
   });

Returns

Promise<ConnectedPlayer[]>

현재 컨텍스트의 플레이어 목록을 포함하는 Promise는 현재 플레이어를 포함할 수 있습니다.

Throws

  • NOT_SUPPORTED
  • NETWORK_FAILURE
  • CLIENT_UNSUPPORTED_OPERATION
  • INVALID_OPERATION

getType

getType(): ContextType

현재 컨텍스트 유형을 가져옵니다.

const type = Wortal.context.getType();
console.log(type);

Returns

ContextType

현재 컨텍스트 유형.


inviteAsync

inviteAsync(payload): Promise<number>

링크에는 BLOB 데이터를 첨부할 수 있으며, 초대 링크에서 시작된 모든 게임 세션은 Wortal.session.getEntryPointData()를 통해 접근할 수 있습니다. 데이터를 문자열로 변환할 경우, 최대 1000자 이내여야 합니다. 사용자는 액션(초대)을 취소하고 대화창을 닫을 수 있으며, 반환되는 Promise는 사용자가 실제로 친구를 초대했는지 여부와 관계없이 대화창이 닫힐 때 해결됩니다. 대화 상자에 포함된 섹션은 섹션 매개 변수를 사용하여 사용자 정의할 수 있다. 이를 통해 어떤 섹션을 포함할 것인지, 각 섹션에 포함할 결과의 수, 그리고 섹션이 표시되는 순서를 지정할 수 있습니다. 마지막 섹션에는 가능한 모든 결과가 포함됩니다. 섹션을 지정하지 않으면 기본 섹션 설정이 적용됩니다. 필터 매개변수를 사용하여 결과를 필터링할 수 있습니다. 필터를 적용해도 결과가 반환되지 않으면 필터 없이 결과가 생성됩니다.

Wortal.context.inviteAsync({
   image: 'data:base64Image',
   text: 'Invite text',
   cta: 'Play',
   data: { exampleData: 'yourData' },
}).then(() => console.log("Invite sent!"));

매개변수

이름 유형 설명
payload InvitePayload 초대할 때 공유할 내용을 지정합니다. 자세한 내용은 예시를 참고하세요.

Returns

Promise<number>

플랫폼의 친구 선택 기능(친구 초대 기능)이 종료되면 해결되는 Promise. 여기에는 메시지가 공유된 친구의 수가 포함됩니다. 또한 페이스북은 항상 "0"을 반환한다.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • NETWORK_FAILURE
  • PENDING_REQUEST
  • CLIENT_UNSUPPORTED_OPERATION
  • INVALID_OPERATION

isSizeBetween

isSizeBetween(min?, max?): ContextSizeResponse | null

현재 게임 컨텍스트의 참가자 수가 지정된 최소값과 최대값 범위 내에 있는지 여부를 판단한다. Bound가 Null인 경우, 다른 Bound만 확인합니다. 이 함수는 게임 플레이 세션 내 특정 게임 컨텍스트에서 처음 호출될 때 항상 원래의 결과를 반환합니다. 이후 호출 시에는 인자에 관계없이 컨텍스트가 변경되고 쿼리 결과가 재설정될 때까지 원래 쿼리 결과를 반환합니다.

const result = Wortal.context.isSizeBetween(2, 4);
console.log(result.answer);

매개변수

이름 유형 Descript설명ion
min? number 컨텍스트 내 최소 플레이어 수.
max? number 컨텍스트 내 최대 플레이어 수.

Returns

ContextSizeResponse | null

체크한 결과의 오브젝트. 지원되지 않는 경우 Null을 반환합니다.


shareAsync

shareAsync(payload): Promise<number>

대화 상자를 호출하여 지정된 콘텐츠(예: 사용자 타임라인의 게시물 등)를 공유할 수 있도록 하며, BLOB 데이터를 공유에 첨부하고 해당 공유에서 시작된 모든 게임 세션은 Wortal.session.getEntryPointData ()에서 접근할 수 있습니다. 데이터를 문자열로 변환할 경우, 최대 1000자 이내여야 합니다. 사용자는 공유 액션을 취소하고 대화창을 닫을 수 있으며, 반환된 Promise는 사용자가 실제로 콘텐츠를 공유했는지 여부와 상관없이 대화창이 닫히면 해결됩니다.

Wortal.context.shareAsync({
    image: 'data:base64Image',
    text: 'Share text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(result => console.log(result));

매개변수

이름 유형 설명
payload SharePayload 공유 메시지를 정의하는 객체.

Returns

Promise<number>

플랫폼의 친구 선택 기능(친구 초대 기능)이 종료되면 해결되는 Promise.

여기에는 메시지가 공유된 친구의 수가 포함됩니다. 또한 페이스북은 항상 "0"을 반환한다.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • NETWORK_FAILURE
  • PENDING_REQUEST
  • CLIENT_UNSUPPORTED_OPERATION
  • INVALID_OPERATION

shareLinkAsync

shareLinkAsync(payload): Promise<string | void>

사용자가 클립보드에 복사하거나 공유할 수 있는 커스텀 게임 링크가 포함된 대화창을 실행합니다. 커스텀 링크에는 BLOB 데이터를 첨부할 수 있습니다. 링크에서 시작된 게임 세션은 Wortal.session.getEntryPointData()를 통해 데이터에 접근할 수 있습니다. 데이터를 문자열로 변환할 경우, 최대 1000자 이내로 입력해야 합니다. 제공된 텍스트와 이미지는 미리보기 링크를 생성하는 데 사용됩니다. 미리보기 제목은 게임 이름입니다. 텍스트는 44자 이내로 입력하는 것이 좋습니다. 이미지는 정사각형 또는 1.91:1의 종횡비를 권장한다. 반환된 Promise는 사용자가 실제로 링크를 공유했는지 여부와 상관없이 대화가 닫힐 때 해결됩니다.

Wortal.context.shareLinkAsync({
   image: 'data:base64Image',
   text: 'Share text',
   data: { exampleData: 'yourData' },
}).then(() => resumeGame);

매개변수

이름 유형 설명
payload LinkSharePayload 커스텀 링크의 페이로드를 정의하는 객체.

Returns

Promise<string | void>

대화가 닫혔을 때 해결되는 Promise.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • NETWORK_FAILURE
  • PENDING_REQUEST
  • INVALID_OPERATION

switchAsync

switchAsync(contextID): Promise<void>

특정 컨텍스트로의 전환을 요청합니다. 플레이어가 해당 컨텍스트에 들어갈 권한이 없거나 플레이어가 게임에 해당 컨텍스트에 들어갈 수 있는 권한을 부여하지 않으면 이 요청은 거부됩니다. 그렇지 않으면 게임이 지정된 컨텍스트로 전환될 때 약속이 해결됩니다.

Wortal.context.switchAsync('abc123');

매개변수

이름 유형 설명
contextID string 전환하고자 하는 컨텍스트의 ID 또는 "SOLO"(솔로)라는 문자열을 지정하여 솔로 컨텍스트로 전환합니다.
payload? SwitchPayload 컨텍스트 전환에 대한 옵션을 정의하는 선택적 객체입니다.

Returns

Promise<void>

게임이 지정된 컨텍스트로 전환될 때 해결되는 Promise, 그렇지 않으면 거부됩니다.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • SAME_CONTEXT
  • NETWORK_FAILURE
  • USER_INPUT
  • PENDING_REQUEST
  • CLIENT_UNSUPPORTED_OPERATION

updateAsync

updateAsync(payload): Promise<void>

현재 컨텍스트의 채팅 스레드에 메시지를 보내고 업데이트를 게시합니다. 플레이어가 이 메시지에서 게임을 시작하면, 해당 게임 세션은 Wortal.session.getEntryPointData()에서 지정된 BLOB 데이터에 접근할 수 있게 됩니다.

Wortal.context.updateAsync({
    image: 'data:base64Image',
    text: 'Update text',
    cta: 'Play',
    data: { exampleData: 'yourData' },
}).then(() => resumeGame);

매개변수

이름 유형 설명
payload UpdatePayload 업데이트 메시지를 정의하는 객체.

Returns

Promise<void>

업데이트 메시지를 정의하는 객체.

Throws

  • NOT_SUPPORTED
  • INVALID_PARAM
  • PENDING_REQUEST
  • INVALID_OPERATION