温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何实现Facebook 小游戏快速发布

发布时间:2022-01-12 11:00:58 来源:亿速云 阅读:156 作者:柒染 栏目:移动开发

今天就跟大家聊聊有关如何实现Facebook 小游戏快速发布,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

小游戏快速入门

如何实现Facebook 小游戏快速发布

设置应用

即便您已有托管到 Facebook.com 的网页游戏,或托管到移动应用商店的移动游戏,也需要为自己的小游戏创建一款新应用。您无法使用与其他应用相同的 Facebook 应用编号制作一款小游戏。

将类别设置为“游戏”

前往应用面板的基本设置版块,确保将类别设置为游戏。保存更改。

为应用添加管理员、开发者和测试员

Facebook 正在逐步面向更广泛的受众推广小游戏,您的游戏目前可能无法对所有用户开放。要确保游戏的所有发开者和测试员拥有访问权限,请在应用面板的用户身份选项卡中将他们添加为应用的管理员、开发者或测试员(请参见下方截图)。详细了解用户身份。

在应用面板中启用小游戏功能

请注意:请勿向针对 iOS、Android 或 Web 环境配置的原有 Facebook 应用添加小游戏。为小游戏创建的 Facebook 应用编号不适用于其他平台。

新建 Facebook 应用

要为应用启用*小游戏功能,点击导航菜单底部的 + 添加商品按钮。 这一操作将打开应用中的可用产品列表。在列表中找到小游戏,并点击开始按钮。这一操作将为菜单添加一个小游戏版块。确保开启在小游戏平台上架开关。保存更改,然后继续。

SDK 第一步

导入

现在您已设置好应用,需要开始创建游戏客户端。 游戏客户端根目录下需要有一个 index.html 文件。请首先从此文件导入小游戏 SDK。

<script src="https://connect.facebook.net/en_US/fbinstant.6.0.js"></script>

初始化

我们的 SDK 广泛使用 Promises 来实现异步功能。您只能在 FBInstant.initializeAsync() 解析完成后与加载的用户界面互动。

FBInstant.initializeAsync()

  .then(function() {        

     // Start loading game assets here

  });

游戏客户端不会一次性下载所有捆绑包(.zip 文件),而是会搜索配置根文件 (fbapp-config.json) 和主文件 (index.html)。之后,它将开始执行主文件中所含的逻辑,并开始从此处下载资产。开发者可以全权控制资产加载的顺序和时间。

在开始下载初始化游戏所需的资产后,您需要将加载进度告知 SDK,以便我们向玩家展示加载进度环。

var images = ['sprite1', 'sprite2', ...];

for (var i=0; i < images.length; i++) {

  var assetName = images[i];  

  var progress = ((i+1)/images.length) * 100;  

  game.load.image(assetName);

  // Informs the SDK of loading progress

  FBInstant.setLoadingProgress(progress);

}

// Once all assets are loaded, tells the SDK

// to end loading view and start the game

FBInstant.startGameAsync()

  .then(function() {

    // Retrieving context and player information can only be done

    // once startGameAsync() resolves

    var contextId = FBInstant.context.getID();

    var contextType = FBInstant.context.getType();

    var playerName = FBInstant.player.getName();

    var playerPic = FBInstant.player.getPhoto();

    var playerId = FBInstant.player.getID();

    // Once startGameAsync() resolves it also means the loading view has

    // been removed and the user can see the game viewport

    game.start();

  });

如需详细了解 initializeAsync()、setLoadingProgress() 和 startGameAsync() 方法,请参阅 SDK 参考文档。

测试和上传

小游戏内容在 Facebook 基础设施上托管,因此,无需自行托管游戏内容或使用第三方服务。在准备好游戏进行测试后,将所有游戏文件打包为一个 .zip 文件。请注意,index.html 文件应位于此存档的根文件夹中,而不应位于任何子文件夹中。

要上传 .zip 文件,请点击应用面板中的虚拟主机选项卡。从该选项卡的下拉菜单中选择“小游戏”,然后单击 +上传版本,即可将 .zip 文件上传到 Facebook 的托管服务中。

之后,构建版本会处理文件,仅需数秒时间。状态更改为“待命”时,单击“★”按钮将构建版本推送到生产。

如何实现Facebook 小游戏快速发布 

之后,您可以在移动设备中测试构建版本。现在,在 Messenger 内的游戏列表中,您可以在“开发中”版块下看见已发布的构建版本。为了加快开发流程,您可以参考此指南,了解如何通过图谱 API 从命令行上传构建版本,或者如何直接从开发服务器进行测试:测试、发布和分享小游戏

游戏环境更新

我们已经介绍过使用小游戏 SDK 的基本知识,现在来看看如何让您的游戏与游戏环境互动。

我们用游戏环境一词来定义可以玩游戏的任何环境。更多情况下,游戏环境是指 Messenger 对话,但如果游戏不是在 Messenger 中玩,游戏环境也可以指其他各种位置,例如 Facebook 帖子或小组。

以下示例说明了如何发送游戏环境更新及其在 Messenger 对话中的展示效果。

第 1 步:在配置文件中声明模板

为了声明自定义更新,您需要创建名为 fbapp-config.json 的配置文件,并将其放在捆绑包的根目录中,与 index.html 文件放在一起。如需详细了解受支持的配置,请参阅捆绑包配置部分。 在本示例中,文件内容应该如下所示:

{

  "instant_games": {

    "platform_version": "RICH_GAMEPLAY",

    "custom_update_templates": {

      "play_turn": {

        "example": "Edgar played their move"

      }

    }

  }

}

通过自定义更新模板配置,我们可以为每个特定的自定义更新分配一个编号,从而更好地进行分析。您必须为所有游戏分配模板编号。

第 2 步:使用 updateAsync 发送自定义更新

在配置文件中声明模板后,便可将模板用于填充 FBInstant.updateAsync 中的必填 template 字段。以下示例说明井字棋游戏如何利用调用通知对手轮到他们出棋。您可以在右侧看到消息的展示效果。

  // This will post a custom update. If the game is played in a messenger

// chat thread, this will post a message into the thread with the specified

// image and text message. And when people launch the game from this

// message, those game sessions will be able to access the specified blob

// of data through FBInstant.getEntryPointData().

FBInstant.updateAsync({

  action: 'CUSTOM',

  cta: 'Play',

  image: base64Picture,

  text: {

    default: 'Edgar played their move',

    localizations: {

      en_US: 'Edgar played their move',

      es_LA: '\u00A1Edgar jug\u00F3 su jugada!'

    }

  }

  template: 'play_turn',

  data: { myReplayData: '...' },

  strategy: 'IMMEDIATE',

  notification: 'NO_PUSH'

}).then(function() {

  // closes the game after the update is posted.

  FBInstant.quit();

});

 如何实现Facebook 小游戏快速发布

有关自定义游戏环境更新的更多信息,请参阅我们的小游戏 SDK 参考文档。

如需查看相关最佳实践指南,了解何时向其他玩家发送消息、何时向他们发送通知以及最好在游戏环境更新中添加哪些内容,请参阅我们的最佳实践部分。

请注意,游戏环境更新不会发送到 Messenger 以外的地方。通过使用 context.getType() 方法和检测 THREAD 来定制游戏体验非常有用。您可以使用 context.switchAsync、context.chooseAsync 或 context.createAsync 切换到更为合适的游戏环境。

(可选)设置游戏智能助手,再次吸引玩家

小游戏的一项重要功能是能附加 Messenger 平台智能助手。这项功能虽为选择性配置,却为游戏提供了一个强有力的再参与渠道。以下指南说明了如何创建和设置游戏智能助手。

第 1 步:创建主页

如需创建游戏智能助手,您首先需要创建 Facebook 主页。主页要正确地与小游戏关联,需要具备一些特殊的属性:

主页类别需要是应用主页

主页名称需要包含应用名称。

主页不能与其他应用关联。

您可以前往“应用面板”,在小游戏产品的应用主页版块创建满足这些特殊条件的主页。 在执行下一步操作前,请确保应用主页版块如右图所示:

如何实现Facebook 小游戏快速发布

注意:如果小游戏未与上述类型的主页正确关联,智能助手将不会收到 messaging_game_plays 事件

第 2 步:激活智能助手

创建主页后,您需要确保响应其消息 webhooks。Webhooks 是在向您的主页发送消息事件时,我们向您的后端发送的 HTTP 调用。之后,您的服务器的逻辑将决定如何正确地响应每个事件(如果响应适用)。 如需将服务器的端点与主页事件相关联,请按照 Messenger 平台快速入门教程中的说明为主页启用智能助手。下表介绍了将智能助手与小游戏关联所需的 webhooks 和权限:

部分 值

主页事件

messages 和 messaging_game_plays

权限

pages_messaging

小游戏智能助手仅可使用标准消息和 GAME_EVENT消息标签,不能使用 pages_messaging_subscriptions。

如果您的智能助手具有需要用到订阅消息或客户匹配的其他功能,您应创建单独的应用并重新申请 Messenger 平台权限。

第 3 步:响应 messaging_game_plays webhooks

正确配置智能助手后,您的服务器端应用程序将开始在玩家每次关闭小游戏时接收 messaging_game_plays webhooks。下面是服务器端应用程序检测到并响应一个 webhook 的示例。

if (event.game_play) {

  var senderId = event.sender.id; // Messenger sender id

  var playerId = event.game_play.player_id; // Instant Games player id

  var contextId = event.game_play.context_id;

  var payload = event.game_play.payload;

  var playerWon = payload['playerWon'];

  if (playerWon) {

    sendMessage(

      senderId,

      contextId,

      'Congratulations on your victory!',

      'Play Again'

    );

  } else {

    sendMessage(

      senderId,

      contextId,

      'Better luck next time!',

      'Rematch!'

    );

  }

}

您可以参阅 Messenger 平台文档,详细了解 webhook:“玩游戏”Webhook 文档。

第 4 步:吸引玩家重回游戏

以下是如何使用图谱 API 向玩家发送 game_play 按钮的示例。

curl "https://graph.facebook.com/v2.6/me/messages?access_token=<PAGE_ACCESS_TOKEN>"

   -X POST

   -H "Content-Type: application/json"

   -d '{

  "messaging_type": "UPDATE",

  "recipient": {

    "id": "<RECIPIENT_ID>"

  },

  "message": {

    "attachment": {

      "type": "template",

      "payload": {

        "template_type": "generic",

        "elements": [

          {

            "title": "It has been a while since your last game. Time to get back",

            "buttons": [

              {

                "type": "game_play",

                "title": "Play Tic-Tac-Toe.",

                "payload": "{}",

                "game_metadata": {

                  "context_id": "<CONTEXT_ID>"

                }

              }

            ]

          }

        ]

      }

    }

  }

}'

 如何实现Facebook 小游戏快速发布

您可以参阅 Messenger 平台文档,详细了解此按钮:“玩游戏”按钮文档。

第 5 步:遵循我们的指南和政策

发布至生产阶段后,您的游戏智能助手应进入 Messenger 平台提交流程。提交智能助手之前,请确保遵守下面的最佳实践:

建议:

向玩家提供相关、及时且有价值的更新。如需获取更多信息,请访问我们的最佳实践版块。

给予用户掌控权(例如:让用户确认他们是否想要接收通知以及以接收的频率)。

对玩游戏按钮使用入口点数据,以环境相关的方式加载游戏。

为智能助手设置与游戏相同的名称。

利用社交更新,如回合提醒、比赛结果、限时奖励和挑战。

确保为玩家提供适当的奖励刺激,促使他们通过智能助手消息打开游戏。为此,您可使用消息负载为玩家提供有价值的游戏内奖励。一般来说,如果智能助手消息打开的是游戏的开始页面,这条消息便没有什么价值。

使用固定菜单提供常见操作,如启动游戏。

设置默认操作,在自定义更新中使用 game_play,以便整个图片都能将用户带入游戏中。

通过智能助手公布新功能或内容。

针对每位用户优化每天的消息发送时段,考虑用户所在的时区。

借鉴 Messenger 智能助手的通用最佳实践。

请勿:

在玩家关闭游戏后立即发送消息。

发送没有任何背景信息的消息再次吸引玩家(例如:“立即回到游戏中!”)。建议首选包含丰富背景信息的消息来重新吸引玩家(例如:“你的侦查员为你带回了更多信息”)

使用其他 Facebook 用户的口吻,或误导玩家以为他们好友在与他们沟通。

在用户屡次不想加入游戏的情况下继续向他们发送智能助手消息。这种情况将适用政策限制,并阻止您发送消息。当前的限制为,自最后一次游戏会话结束后 10 天最多可发送 5 条消息。如需详细了解,请参阅我们的开放平台政策文档中的第 9.4 条

将 messaging_type 设置为 RESPONSE 或 UPDATE 以外的其他任何值

链接至任何应用商店。

看完上述内容,你们对如何实现Facebook 小游戏快速发布有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注亿速云行业资讯频道,感谢大家的支持。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI