快速入门:适用于 NodeJS 的 PlayFab 客户端库

开始使用 NodeJS 的 PlayFab 客户端库,执行第一个 PlayFab API 调用和验证播放器。 按照步骤安装程序包,并尝试使用基本任务的示例代码。

先决条件

设置

以下命令支持 Windows、MacOS 和 Linux。

  1. 为项目创建一个新文件夹 {NodeProjLocation}:

    GettingStarted.js

  2. 在项目文件夹中打开命令窗口

  3. 运行此命令:

    npm install playfab-sdk --save

    保持此窗口打开(稍后我们还要用到它)。

PlayFab 安装完成!

代码示例

对客户端进行身份验证

本指南提供进行首次 PlayFab API 调用(无任何 GUI 或屏幕反馈)的最少步骤。 使用控制台日志完成确认。 有关参数和返回值的详细信息,建议先使用“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 引用文档。

解析此代码

本部分详细介绍节点快速启动代码的每一部分。

对于节点 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,存在唯一标识玩家的 CustomId 的强制参数,以及可利用此调用创建新帐户的 CreateAccountTitleId 是 JavaScript 中的另一个强制参数,它必须与 PlayFab.settings.titleId 相匹配。
        • 若要了解在何处找到 TitleId,请参阅 游戏管理器 快速入门
  • 在这种情况下,TitleIdcustomIdCreateAccount 来自 LoginWithCustomID 的请求正文。
  • LoginCallback 包含两个参数:errorresult
    • 成功后,error 将为 null,并且根据所调用的 API,result 对象将包含所请求的信息。
      • result 包含有关玩家的一些基本信息,但对于大多数用户而言,登录只是在调用其他 API 之前的必要步骤。
  • 如果 error 不为 null,则表明 API 已失败。

故障排除

  • API 调用可能由于多种原因而失败,您应始终尝试处理失败。
  • 错误对象包括错误名称、错误代码和错误消息。 并且,此信息应足以诊断错误。
  • 为什么 API 调用失败(按可能性顺序):
    • 未设置 PlayFabSettings.TitleId。 如果忘记将 TitleId 设置为游戏,则不会进行任何操作。
    • 请求参数。 如果未为特定 API 调用提供正确或必需的信息,则调用将失败。 有关详细信息,请参阅 error.errorMessageerror.errorDetailserror.GenerateErrorReport()
    • 设备连接问题。 手机不断失去/恢复连接,因此任何 API 调用在任何时候都可能随机失败,然后立即恢复运行。 进入隧道将完全断开连接。
    • PlayFab 服务器问题。 与所有软件一样,可能存在问题。 有关更新,请参阅我们的发行说明
  • 互联网并非 100% 可靠。 有时消息已受损或无法到达 PlayFab 服务器。

后续步骤

此快速入门显示验证用户的简化过程。 有关用户身份验证的其他信息,请参阅 登录基础知识和最佳做法

编码愉快!