玩家可以分享他们玩游戏时的截图和视频片段。分享到玩家动态时,可添加一条自定义消息。
调用 FBInstant.shareAsync()
,为将出现在动态中和 Messenger 消息中的内容设置图片、文本和按钮文本。用户点击按钮时,会启动游戏;开发者可以从这个入口点访问 FBInstant.getEntrypointData()
,此接口会返回之前传递到 FBInstant.shareAsync()
的 data
对象。
分享功能的流程如下:
玩家完成某些成就:例如完成关卡、击败强敌或者获得成就。
提示玩家分享 - 但是在玩家点击“分享”按钮之前,不要调用 API(请参阅 Facebook 开发者政策 7.4.f)。
在玩家点击“分享”后,调用 shareAsync 并提交要在动态中展示的图片、动图或视频,以及有助于让新玩家置身于相应游戏体验的有效负载。
玩家选择分享对象、编写内容,然后分享。
在动态中展示帖子
玩家进入游戏后会开启一段全新的会话,或者您也可以提供和使用有效负载来让玩家跳转至其它目标位置。
分享内容会直接发布在玩家的个人主页并显示在动态中,因此为了最大限度地获取玩家,请务必在游戏中构建优质且直观的分享流程。在设计游戏时,请设定一些有意义的时刻(例如个人成就感、与好友对战大获全胜或庆祝团队合作的成果),同时向玩家提供可以分享这些时刻的明确选项。
我们建议在结果页面或其他相关页面至少有一个突出的“分享”按钮。在有意义的时刻出现时(例如分数达到新高以及获得稀有物品),提供游戏提示,并附有背景/说明,以鼓励玩家分享更多内容。详情请参阅最佳实践。
此一对多沟通渠道是赢得新玩家和留存已有玩家的强大驱动力。分享的内容会在动态中显示,因此有助于向从未接触过您游戏的玩家展示游戏内容,尤其是那些不常浏览“游戏”选项卡的玩家。
本部分介绍有关如何在各个受支持的 SDK 中集成“分享”功能的信息。
调用 FBInstant.shareAsync()
以发起分享,然后提交图片和负载,而且该有效负载应该能够令玩家好友直接跳转至正确的游戏关卡。
调用游戏服务 Javascript SDK 中的 FB.gamingservices.uploadImageToMediaLibrary
。
FB.gamingservices.uploadImageToMediaLibrary
允许游戏异步上传素材(玩家会在会话结束后分享内容) shouldLaunchMediaDialog
设置为 TRUE 会触发即时分享对话框。请参阅分享有意义的时刻中提供的建议。
玩家有新发现或者完成角色创建,并且选择分享内容。
游戏应发出以下调用。
FBInstant.shareAsync
好友看到分享内容并点击开始游戏。
好友跳转至游戏的正确位置,然后开始玩游戏。
仅因为玩家分享游戏就给予奖励回报,借此激励玩家,这一行为有违 Facebook 政策。但是如果用户通过玩家的分享或邀请加入游戏(并且根据需要接受服务条款),则您可以给予该玩家奖励。在这种情况下,如果您愿意,可以同时给予这两位玩家奖励。
游戏为邀请好友加入游戏的玩家提供奖励。
游戏应执行以下调用。
FBInstant.shareAsync({ intent: 'REQUEST', Image: base64Picture, text: ‘Come play with your friend!’, data: {payload: ‘...’}, switchContext: false,
好友看到分享内容并点击开始游戏。
游戏解译有效负载,并向用户显示通过分享加入游戏后,他们会获得哪些奖励。
游戏应执行以下调用。
FBInstant.getEntryPointData()
在受邀人收到奖励后,向邀请人发送自定义动态更新,让他们知道自己也得到奖励。
游戏应执行以下调用。
FBInstant.updateAsync({ action: 'CUSTOM', cta: 'Join The Fight', image: base64Picture, text: { default: 'You have a new reward!', localizations: {}} template: 'VILLAGE_INVASION', data: { payload: '...' }, strategy: 'IMMEDIATE', notification: 'NO_PUSH', })
您不得仅因为玩家 A 邀请另一位玩家或者在动态中发布内容就给予其奖励。但如果玩家 A 邀请了玩家 B,并且玩家 B 已经开始玩游戏,玩家 A 就可以得到奖励。在这种情形下,玩家 B 也可以得到奖励。详细了解此政策。