社交功能
借助小游戏,您可通过多种方式促进玩家之间的社交互动。下面是有关这些功能的详细信息。
自定义更新
借助小游戏,您可以在玩游戏的 Messenger 对话中发送自定义消息。可使用图片、说明,甚至包含自定义文本的“行动号召”按钮对此消息进行全面自定义。
默认情况下,仅最后一条特定游戏的更新消息会在对话中展开。但之前的消息可由对话中的任何用户展开。
更新消息还可以传递最多 1kb 的自定义数据块。通过FBInstant.getEntryPointData()从该消息打开游戏的任何玩家都可以获得此数据。
每个环境每个会话只能发送一条消息,所以应包含对应游戏会话中最重要的信息。例如,在回合制游戏中,应说明一方已完成操作,现在该下一个玩家了。但这种使用情况不限于回合制游戏,因为消息是可全面自定义的,可灵活地说明关于任何游戏内操作的有意义的更新。
// 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 just played BASH for 9 points!',
localizations: {
en_US: 'Edgar just played BASH for 9 points!',
pt_BR: 'Edgar jogou BASH por 9 pontos!',
}
}
template: 'WORD_PLAYED',
data: { myReplayData: '...' },
strategy: 'IMMEDIATE',
notification: 'NO_PUSH',
}).then(function() {
console.log('Message was sent successfully');
});
自定义分享
您可以让玩家分享关于游戏的有意义时刻。SDK 调用的运作方式与上述自定义更新调用相似,但不是更新当前对话中的内容,而是通过FBInstant.shareAsync()方法提示玩家在其他地方分享精彩时刻。
玩家可以在动态消息或 Messenger 对话中分享。如果他们在动态消息中分享,则可以在分享中添加自定义消息。
动态消息中的动态和 Messenger 消息都会包含图片、文本和按钮,这些都会在调用 API 时设置。使用按钮启动游戏。通过该接入点,开发者可以访问FBInstant.getEntrypointData(),此函数会返回通过FBInstant.shareAsync()中的data:参数传递的数据对象。
FBInstant.shareAsync({
intent: 'REQUEST',
image: myBase64Picture,
text: 'Hey I\'m stuck on this puzzle! Can you help me?',
data: { myReplayData: '...' },
关联的玩家
FBInstant.player.getConnectedPlayersAsync()方法会检索在 Messenger 与当前玩家建立联系以及向游戏授予权限的用户列表。
请注意,此方法不会提供在相同环境和未在相同环境中玩游戏的玩家之间的区别。您可以从FBInstant.context.getPlayersAsync()获取特定于该环境的信息。
获取玩家的好友
FBInstant.player.getConnectedPlayersAsync()
.then(function(players) {
_leaderboard.render(players);
});
获取相同环境玩家
FBInstant.context.getPlayersAsync()
.then(function(players) {
_leaderboard.render(players);
});
更改游戏环境
用户可以在许多不同的环境中玩小游戏,例如 Messenger 对话或动态消息中的动态。借助以下 SDK 调用,您可以通过任何会话切换环境,无论用户从哪里进入游戏。这意味着,您可以允许玩家切换至其他对话,而无需退出并重新打开游戏。
为方便更改为新的游戏环境,我们提供三种不同的方法:
通过FBInstant.context.chooseAsync()打开一个原生对话框,允许玩家选择想要更改为哪一种对话。
例如,开发者可使用FBInstant.context.switchAsync(contextId)将玩家发送到预定义的游戏环境,以便继续之前在其他对话中开始的游戏竞赛。
FBInstant.context.createAsync(playerId)会尝试为指定的玩家创建游戏环境。例如,您可以利用此方法在玩家与推荐好友之间开始一场比赛。
游戏智能助手
游戏智能助手可帮助您打造再次吸引玩家的体验。游戏智能助手使用Messenger 平台构建,是可与玩家互动,并利用有意义的时刻邀请玩家重回游戏的对话型智能助手。您可以使用游戏智能助手提供支线任务、故事模式、玩家进度更新、激励规则等。
当玩家关闭游戏时,游戏智能助手的服务器会收到 Webhook 通知,之后便可直接向玩家发送消息。智能助手还可以提供“玩游戏”按钮,此按钮可以根据环境选择进行自定义。
注意:我们提供多个可供加入和退出智能助手对话的接入点,因此您不必假设所有玩家均已连接至您的智能助手,也无需完全依赖智能助手消息来提供游戏体验。智能助手消息可作为游戏体验的有益补充,但并非必要条件。
其他信息
4.关于 Messenger 平台中“玩游戏”Webhook 的文档
另外我创建了一个 Facebook Instant Game 交流QQ群:814298516
欢迎同行们加入讨论技术
网友评论