다음을 통해 공유


빠른 시작: NodeJS용 PlayFab 클라이언트 라이브러리

NodeJS용 PlayFab 클라이언트 라이브러리를 시작하여 처음으로 PlayFab API 호출을 수행하고 플레이어를 인증해 보세요. 단계에 따라 패키지를 설치하고 예제 코드를 통해 기본 작업을 수행해 봅니다.

필수 조건

  • PlayFab 개발자 계정 타이틀을 만들고 TitleId를 찾는 방법에 대한 자세한 내용은 게임 관리자 빠른 시작을 참조하세요.
  • Node.js
  • PATH 환경 변수에 노드가 있어야 합니다. 설치 관리자를 사용한 경우 기본 위치인 C:/Program Files (x86)/nodejs/로 설정되었을 수 있습니다.

설정

다음 명령은 Windows, MacOS, Linux에서 작동합니다.

  1. {NodeProjLocation} 프로젝트에 대한 빈 폴더를 새로 만듭니다.

    GettingStarted.js

  2. 프로젝트 폴더에서 명령 창을 엽니다.

  3. 다음 명령을 실행합니다.

    npm install playfab-sdk --save

    나중에 다시 사용하기 위해 이 창을 계속 열어 둡니다.

PlayFab 설치가 완료되었습니다!

코드 예제

클라이언트 인증

이 가이드에서는 GUI 또는 화면의 피드백 없이 처음으로 PlayFab API 호출을 수행하기 위한 최소한의 단계를 제공합니다. 콘솔 로그로 확인이 완료됩니다. 매개 변수와 반환 값에 대해 자세히 알아보려면 먼저 Postman 템플릿을 사용하는 것이 좋습니다.

원하는 텍스트 편집기에서 다음과 같이 GettingStarted.js 내용을 업데이트합니다.

참고 항목

이 예에서 loginRequest 개체의 올바른 형식을 조회하려면 LoginWithCustomID에 대한 API 참조를 확인하십시오.

var PlayFab = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFab");
var PlayFabClient = require("./node_modules/playfab-sdk/Scripts/PlayFab/PlayFabClient");

function DoExampleLoginWithCustomID() {
    PlayFab.settings.titleId = "144";
    var loginRequest = {
        // Currently, you need to look up the correct format for this object in the API reference for LoginWithCustomID. The Request Headers and Request Body are included as keys and values in the request object.
        TitleId: PlayFab.settings.titleId,
        CustomId: "GettingStartedGuide",
        CreateAccount: true
    };

    // For functions in the Node SDK, the first parameter will be the request object and the second parameter will be the callback function. The callback function executes after the request returns.
    PlayFabClient.LoginWithCustomID(loginRequest, LoginCallback);
}

function LoginCallback(error, result) {
    if (result !== null) {
        console.log("Congratulations, you made your first successful API call!");
    } else if (error !== null) {
        console.log("Something went wrong with your first API call.");
        console.log("Here's some debug information:");
        console.log(CompileErrorReport(error));
    }
}

// This is a utility function we haven't put into the core SDK yet. Feel free to use it.
function CompileErrorReport(error) {
    if (error == null)
        return "";
    var fullErrors = error.errorMessage;
    for (var paramName in error.errorDetails)
        for (var msgIdx in error.errorDetails[paramName])
            fullErrors += "\n" + paramName + ": " + error.errorDetails[paramName][msgIdx];
    return fullErrors;
}

// Kick off the actual login call
DoExampleLoginWithCustomID();

코드 실행

  1. 설치하는 동안 열어 둔 콘솔 창에서 다음 명령을 실행합니다.

    node GettingStarted.js

    그 결과 다음 텍스트가 표시되어야 합니다.

    "축하합니다. 첫 번째 API 호출에 성공했습니다"

이제 다른 API 호출 및 게임 빌드를 시작할 수 있습니다.

사용 가능한 모든 클라이언트 API 호출 목록을 보려면 PlayFab API 참조 설명서를 참조하세요.

코드 분해

이 섹션에서는 Node 빠른 시작 코드의 각 부분을 자세히 설명합니다.

Node SDK에서 PlayFabClientSDK 함수의 이름은 HTTP 요청 후에 지정됩니다. 예를 들어 LoginWithCustomID 함수에 대한 해당 HTTP 요청은 "LoginWithCustomID"라고도 합니다. 요청 헤더와 요청 본문은 JavaScript 요청 개체에 키와 값으로 압축됩니다.

  • GettingStarted.js에 대한 줄별 분류
    • PlayFab.settings.titleId = "xxxx";

      • 모든 PlayFab 개발자는 게임 관리자에서 타이들을 만듭니다. 게임을 게시할 때 게임에 해당 TitleId를 코딩해야 합니다. 이렇게 하면 클라이언트가 PlayFab 내에서 올바른 데이터에 액세스하는 방법을 알 수 있습니다. 대부분의 사용자는 이 작업을 PlayFab을 작동시키기 위한 필수 단계로 생각하면 됩니다.
    • var loginRequest = { TitleId: PlayFab.settings.titleId, CustomId: "GettingStartedGuide", CreateAccount: true };

      • 대부분의 PlayFab API 메서드에는 입력 매개 변수가 필요하고 이러한 입력 매개 변수는 요청 개체로 압축됩니다.
      • 모든 API 메서드는 선택적 매개 변수와 필수 매개 변수가 혼합된 고유 요청 개체가 필요합니다.
        • LoginWithCustomIDRequest의 경우, 플레이어와 CreateAccount를 고유하게 식별하는 CustomId라는 필수 매개 변수가 있어 이 호출로 새로운 계정을 생성하도록 합니다. TitleId은 JavaScript의 또 다른 필수 매개 변수며 PlayFab.settings.titleId과(와) 일치해야 합니다.
        • TitleId를 확인할 수 있는 위치에 대한 자세한 내용은 게임 관리자 빠른 시작을 참조하세요.
  • 이 경우 TitleId, customIdCreateAccount은(는) LoginWithCustomID의 요청 본문에 있습니다.
    • PlayFabClientSDK.LoginWithCustomID(loginRequest, LoginCallback);

      • 이 줄은 LoginWithCustomID에 대한 비동기 요청을 시작하며, API 호출이 완료되면 LoginCallback을 호출합니다.
    • 로그인을 위해 대부분의 개발자들은 보다 적절한 로그인 메서드를 사용하고자 합니다.

  • LoginCallback에는 errorresult의 두 매개 변수가 있습니다.
    • 호출에 성공하면 error은(는) null이(가) 되며, result 개체에는 호출한 API에 따라 요청한 정보가 포함됩니다.
      • result에는 플레이어에 대한 몇 가지 기본적인 정보가 포함되어 있지만 대부분의 사용자에게 로그인은 다른 API를 호출하기 전에 수행해야 하는 필수 단계일 뿐입니다.
  • 오류가 null이 아니면 API 호출이 실패한 것입니다.

문제 해결

  • API 호출은 여러 가지 이유로 실패할 수 있으며, 항상 실패 처리를 시도해야 합니다.
  • 오류 개체에는 오류 이름, 오류 코드, 오류 메시지가 포함됩니다. 이 전체 정보가 충분해서 오류를 진단할 수 있습니다.
  • API 호출이 실패하는 이유(가능성이 높은 순서대로 나열):
    • PlayFabSettings.TitleId이(가) 설정되지 않았습니다. 타이틀에 TitleId를 설정하는 것을 잊은 경우 아무 작업도 수행되지 않습니다.
    • 요청 매개 변수. 특정 API 호출에 대해 정확하거나 필요한 정보를 제공하지 않은 경우 호출에 실패합니다. 자세한 내용은 error.errorMessage, error.errorDetails 또는 error.GenerateErrorReport()를 참조하세요.
    • 장치 연결 문제. 휴대폰은 지속적으로 연결이 끊어졌다가 다시 연결되므로 언제든지 모든 API 호출이 실패한 후 바로 다시 작동할 수 있습니다. 터널로 들어가면 연결이 완전히 끊길 수 있습니다.
    • PlayFab 서버 문제. 모든 소프트웨어와 마찬가지로 문제가 있을 수 있습니다. 업데이트에 대해서는 릴리스 정보를 참조하세요.
  • 인터넷은 100% 신뢰할 수 없습니다. 때때로 메시지가 손상되었거나 PlayFab 서버에 연결되지 않을 수 있습니다.
    • 글로벌 API 메서드 오류 코드는 글로벌 API 메서드 오류 코드에서 확인할 수 있습니다.
    • 문제를 디버깅하는 데 문제가 있는 경우 오류 정보 내의 정보로는 충분하지 않습니다. 포럼에서 문의해 주시기 바랍니다.

다음 단계

이 빠른 시작에서는 사용자를 인증하기 위한 간단한 절차를 보여 줍니다. 사용자 인증에 대한 자세한 내용은 로그인 기본 사항 및 모범 사례를 참조하세요.

즐거운 코딩이 되시길 바랍니다.