搜索
热搜: 活动 交友 discuz
Hi~登录注册
查看: 3696|回复: 2
打印 上一主题 下一主题

Facebook Instant Game  游戏开发更新文档API参考v6.2

[复制链接]

44

主题

58

帖子

327

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
327
跳转到指定楼层
楼主
发表于 2018-8-16 11:24:15 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
Facebook 游戏开发更新文档API参考v6.2
更新日志
1. 连接玩家得分条目 引入新Leaderboard.getConnectedPlayerEntriesAsync()API,从排行榜获取当前玩家连接玩家的得分条目。

FBInstant
Instant Games SDK的顶级命名空间。

播放机
包含与当前播放器相关的功能和属性。

getID()
播放器的唯一标识符。Facebook用户的玩家ID将保持不变,并且范围限定为特定游戏。这意味着不同的游戏将为同一用户提供不同的玩家ID。在FBInstant.initializeAsync()解决之前,不应调用此函数。
例子
//应该在FBInstant.initializeAsync()//结算后调用此函数。var playerID = FBInstant 。球员。getID ();
返回字符串播放器的唯一标识符。

getSignedPlayerInfoAsync()
获取播放器的唯一标识符以及签名,该签名验证标识符确实来自Facebook而不会被篡改。在FBInstant.initializeAsync()解决之前,不应调用此函数。
参数
· requestPayload 字符串开发人员指定的有效负载,包含在已签名的响应中。
例子
//应该在FBInstant.initializeAsync()//结算后调用此函数。FBInstant 。球员。getSignedPlayerInfoAsync ('my_metadata' )。然后(函数(结果){ // ID和签名的验证应该发生在服务器端。SendToMyServer (
      结果。getPlayerID (),//相同的值FBInstant.player.getID()
      结果。getSignature (),“GAIN_COINS ' ,100 ); });






· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < SignedPlayerInfo >使用#signedplayerinfo对象解析的 promise

canSubscribeBotAsync()
返回一个承诺,该承诺通过玩家是否可以订阅游戏机器人来解决。
例子
//应该在FBInstant.player.subscribeBotAsync()FBInstant 之前调用此函数。球员。canSubscribeBotAsync ()。然后(
  can_subscribe => 控制台。日志(can_subscribe )); //'真'
返回Promise < boolean >玩家是否可以订阅游戏机器人。开发人员只能在检查canSubscribeBotAsync()后调用subscribeBotAsync(),并且播放器只能在特定游戏中看到一次此机器人订阅对话框。

subscribeBotAsync()
请求玩家订阅与游戏相关联的机器人。如果订阅失败,API将拒绝 - 否则,玩家将订阅游戏机器人。
例子
FBInstant 。球员。subscribeBotAsync ()。然后(//玩家订阅机器人)。catch (function (e ){ //处理订阅失败});


· 抛出INVALID_PARAM
· 抛出PENDING_REQUEST
· 引发CLIENT_REQUIRES_UPDATE
返回Promise一个承诺,如果玩家成功订阅游戏机器人,则解析,或者如果请求失败或玩家选择不订阅则拒绝。

getName()
播放器的本地化显示名称。在FBInstant.startGameAsync()解析之前,不应调用此函数。
例子
//应该在FBInstant.startGameAsync()//结算后调用此函数。var playerName = FBInstant 。球员。getName ();
返回字符串播放器的本地化显示名称。

getPhoto()
玩家公开个人资料照片的网址。照片将始终为正方形,尺寸至少为200x200。在游戏中渲染时,不应假设精确尺寸不变。建议在渲染之前始终将图像缩放到所需的大小。在FBInstant.startGameAsync()结算之前,该值始终为null。
警告:由于CORS,在游戏画布中使用这些照片会导致它被污染,这将阻止提取画布数据。要防止这种情况,请将您使用的图像的跨原点属性设置为“匿名”。
例子
var playerImage = new Image ();
playerImage 。crossOrigin = 'anonymous' ; //应该在FBInstant.startGameAsync()//结算后调用此函数。
playerImage 。src = FBInstant 。球员。getPhoto ();   
返回字符串网址为玩家的公开个人资料照片。

getDataAsync()
从当前播放器的指定云存储中检索数据。
参数
· keys Array < string >用于检索数据的唯一键数组。
例子
FBInstant 。球员
   getDataAsync ([ 'achievement' ,'currentLife' ])。然后(功能(数据){
     控制台。日志('数据加载' ); VAR 成就= 数据[ '成就' ]; VAR currentLife = 数据[ 'currentLife' ]; });




· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < Object >一个promise,它使用一个对象解析,该对象包含输入数组中指定的每个键的当前键值对(如果存在)。

setDataAsync()
将数据设置为当前播放器的指定云存储。该游戏可以为每个独特的玩家存储多达1MB的数据。
参数
· data Object包含应保留到云存储的一组键值对的对象。该对象必须只包含可序列化的值 - 任何不可序列化的值都将导致整个修改被拒绝。
例子
FBInstant 。球员
   setDataAsync ({
    achievement :[ 'medal1' ,'medal2' ,'medal3' ],
    currentLife :300 ,})。然后(函数(){
    控制台。登录('数据被设定' ); });   



· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise在设置输入值时解析的promise。注意:承诺解析并不一定意味着输入已被持久化。相反,它意味着数据有效并已安排保存。它还保证所有已设置的值现在都可以在player.getDataAsync中使用。

flushDataAsync()
立即将对播放器数据的任何更改刷新到指定的云存储。此功能很昂贵,主要应用于需要立即持久并且游戏已知的持久性的关键更改。非关键性更改应依赖于平台将其保留在后台。注意:当此函数的结果处于挂起状态时,将拒绝对player.setDataAsync的调用。
例子
FBInstant 。球员
   setDataAsync ({
    achievement :[ 'medal1' ,'medal2' ,'medal3' ],
    currentLife :300 ,})。然后(FBInstant 。球员。flushDataAsync )。然后(函数(){
    控制台。登录('数据保存到FB!' ); });   




· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise在成功持久保存更改时解析的promise,如果保存失败则拒绝。

getStatsAsync()
从当前播放器的指定云存储中检索统计信息。
参数
· keys 数组 < string >?用于检索统计信息的可选数组唯一键。如果在没有它的情况下调用该函数,它将获取所有统计信息。
例子
FBInstant 。球员
   getStatsAsync ([ 'level' ,'zombiesSlain' ])。然后(函数(统计){
    控制台。日志('统计被加载' ); 无功电平= 数据[ '等级' ]; VAR zombiesSlain = 数据[ 'zombiesSlain' ]; });




· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < Object >一个promise,它使用一个对象解析,该对象包含输入数组中指定的每个键的当前键值对(如果存在)。

setStatsAsync()
将统计信息设置为当前播放器的指定云存储。
参数
· stats Object包含一组键值对的对象,这些键值对应作为统计信息保存到云存储中,可以通过多种方式显示或使用,以有益于玩家参与。对象必须只包含数值 - 任何非数值都将导致整个修改被拒绝。
例子
FBInstant 。球员
   setStatsAsync ({
    level :5 ,
    zombiesSlain :27 ,})。然后(函数(){
    控制台。登录('数据被设定' ); });  



· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
Returns Promise A promise that resolves when the input values are set. NOTE: The promise resolving does not necessarily mean that the input has already been persisted. Rather, it means that the data was validated and has been scheduled to be saved. It also guarantees that all values that were set are now available in player.getStatsAsync.

incrementStatsAsync( )
Increment stats saved in the designated cloud storage of the current player.
Parameters
· increments Object An object containing a set of key-value pairs indicating how much to increment each stat in cloud storage. The object must contain only numerical values - any non-numerical values will cause the entire modification to be rejected.
Examples
FBInstant.player
  .incrementStatsAsync({
    level: 1,
    zombiesSlain: 17,
    rank: -1,
  })
.then(function(stats)) {
    console.log('increments have been made! New values');
    var level = data['level'];
    var zombiesSlain = data['zombiesSlain'];
  });
· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < Object >一个promise,它使用一个对象解析,该对象包含输入字典中指定的每个键的更新键值对。注意:承诺解决并不一定意味着更改已经保留。相反,它意味着增量有效并已安排执行。它还保证所有递增的值现在都可以在player.getStatsAsync中使用。

getConnectedPlayersAsync()
获取一组ConnectedPlayer对象,其中包含有关连接到当前玩家的活动玩家(在过去90天内玩过该游戏的人)的信息。
例子
var connectedPlayers = FBInstant 。球员。getConnectedPlayersAsync ()。然后(功能(播放器){
    控制台。日志(球员。地图(功能(播放器){ 返回{
        ID :玩家。的getID (),
        名称:玩家。的getName ()} })); });




  // [{id:'123456789',名称:'Paul Atreides'},{id:'987654321',名称:'Duncan Idaho'}]
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < Array < ConnectedPlayer >>使用连接的播放器对象列表解析的promise。注意:在FBInstant.startGameAsync()解析之前,不应调用此函数。

上下文
包含与当前游戏上下文相关的功能和属性。

getID()
当前游戏上下文的唯一标识符。这表示正在播放游戏的特定上下文(例如,特定的信使对话或Facebook帖子)。如果在独奏上下文中播放游戏,则标识符将为null。在FBInstant.startGameAsync解决之前,不应调用此函数。
例子
//应该在FBInstant.startGameAsync()//结算后调用此函数。var contextID = FBInstant 。背景。getID ();
返回字符串当前游戏上下文的唯一标识符。

getType()
The type of the current game context. POST - A facebook post. THREAD - A messenger thread. GROUP - A facebook group. SOLO - Default context, where the player is the only participant.
This function should not be called until FBInstant.startGameAsync has resolved.
Examples
// This function should be called after FBInstant.startGameAsync()// resolves.var contextType = FBInstant.context.getType();
Returns ("OST" | "THREAD" | "GROUP" | "SOLO") Type of the current game context.

isSizeBetween( )
This function determines whether the number of participants in the current game context is between a given minimum and maximum, inclusive. If one of the bounds is null only the other bound will be checked against. It will always return the original result for the first call made in a context in a given game play session. Subsequent calls, regardless of arguments, will return the answer to the original query until a context change occurs and the query result is reset. This function should not be called until FBInstant.startGameAsync has resolved.
Parameters
· minSize number? The minimum bound of the context size query.
· minSize number? The maximum bound of the context size query.
· maxSize number?
Examples
console.log(FBInstant.context.isSizeBetween(3, 5)); (Context size = 4)// {answer: true, minSize: 3, maxSize: 5}
console.log(FBInstant.context.isSizeBetween(5, 7)); (Context size = 4)// {answer: false, minSize: 5, maxSize: 7}
console.log(FBInstant.context.isSizeBetween(2, 10)); (Context size = 3)// {answer: true, minSize: 2, maxSize: 10}
console.log(FBInstant.context.isSizeBetween(4, 8)); (Still in same context)// {answer: true, minSize: 2, maxSize: 10}
console.log(FBInstant.context.isSizeBetween(3, null)); (Context size = 4)// {answer: true, minSize: 3, maxSize: null}
console.log(FBInstant.context.isSizeBetween(null, 3)); (Context size = 4)// {answer: false, minSize: null, maxSize: 3}
控制台。日志(FBInstant 。上下文。isSizeBetween (“测试” ,5 )); (上下文大小= 4 )// null   
控制台。日志(FBInstant 。上下文。isSizeBetween (0 ,100 )); (Context size = null )// null   

switchAsync()
请求切换到特定上下文。如果玩家没有进入该上下文的权限,或者玩家没有提供游戏进入该上下文的权限,则会拒绝。否则,当游戏切换到指定的上下文时,承诺将解决。
参数
· id 所需上下文的字符串 ID。
例子
控制台。日志(FBInstant 。上下文。的getID ()); // 1122334455 FBInstant 。背景
   switchAsync ('1234567890' )。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 1234567890 });



· 抛出INVALID_PARAM
· 抛出SAME_CONTEXT
· 引发NETWORK_FAILURE
· 引发USER_INPUT
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise一个promise,当游戏切换到指定的上下文时解析,否则拒绝。

chooseAsync()
打开播放器的上下文选择对话框。如果玩家选择了可用的上下文,则客户端将尝试切换到该上下文,并在成功时解析。否则,如果播放器退出菜单或客户端无法切换到新上下文,则此功能将拒绝。
参数
· options 对象一个对象,指定应提供的上下文的条件。
· options.filters 数组 < ContextFilter >?要应用于上下文建议的过滤器集。
· options.maxSize 号码理想情况下建议的上下文应具有的最大参与者数。
· options.minSize 号码理想情况下建议的上下文应具有的最小参与者数量。
例子
控制台。日志(FBInstant 。上下文。的getID ()); // 1122334455 FBInstant 。背景
   chooseAsync ()。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 1234567890 });



控制台。日志(FBInstant 。上下文。的getID ()); // 1122334455 FBInstant 。背景
   chooseAsync ({
    filters :[ 'NEW_CONTEXT_ONLY' ],
    minSize :3 ,})。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 1234567890 });  




· 抛出INVALID_PARAM
· 抛出SAME_CONTEXT
· 引发NETWORK_FAILURE
· 引发USER_INPUT
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise当游戏切换到用户选择的上下文时解析的promise。否则,承诺将拒绝(例如,如果用户取消对话框)。

createAsync()
尝试创建或切换到指定玩家和当前玩家之间的上下文。如果列出的玩家不是当前玩家的连接玩家,或者玩家未提供进入新上下文的许可,则返回的承诺将拒绝。否则,当游戏切换到新的上下文时,承诺将解决。
参数
· playerID 播放器的字符串 ID
例子
控制台。日志(FBInstant 。上下文。的getID ()); // 1122334455 FBInstant 。背景
   createAsync ('12345678' )。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 5544332211 });



· 抛出INVALID_PARAM
· 抛出SAME_CONTEXT
· 引发NETWORK_FAILURE
· 引发USER_INPUT
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise一个在游戏切换到新上下文时解析的promise,否则拒绝。

getPlayersAsync()
获取#contextplayer对象的数组,其中包含与当前上下文关联的活动玩家(在过去90天内玩过游戏的人)的信息。这可能包括当前的玩家。
例子
var contextPlayers = FBInstant 。背景。getPlayersAsync ()。然后(功能(播放器){
    控制台。日志(球员。地图(功能(播放器){ 返回{
        ID :玩家。的getID (),
        名称:玩家。的getName ()} })); });




  // [{id:'123456789',名称:'Luke'},{id:'987654321',名称:'Leia'}]
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
· 抛出INVALID_OPERATION

支付
[IN CLOSED BETA]包含与支付和购买游戏产品相关的功能和属性。

getCatalogAsync()
获取游戏的产品目录。
例子
FBInstant 。付款。getCatalogAsync ()。然后(功能(目录){
  控制台。日志(目录); // [{产品编号: '12345',...},...] });   
· 抛出CLIENT_UNSUPPORTED_OPERATION
· 投掷PAYMENTS_NOT_INITIALIZED
· 引发NETWORK_FAILURE
返回Promise < Array < Product >>注册到游戏的产品集。

purchaseAsync()
开始了特定产品的采购流程。如果在FBInstant.startGameAsync()解决之前调用,将立即拒绝。
参数
· purchaseConfig PurchaseConfig购买的配置详细信息。
例子
FBInstant 。付款。purchaseAsync ({
  productID :'12345' ,
  developerPayload :'foobar' ,})。然后(函数(购买){
  控制台。日志(购买); // {产品编号: '12345',purchaseToken: '54321',developerPayload: 'foobar的',...} });   

· 抛出CLIENT_UNSUPPORTED_OPERATION
· 投掷PAYMENTS_NOT_INITIALIZED
· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出INVALID_OPERATION
返回Promise < Purchase >在玩家成功购买产品时解析的Promise。否则,它拒绝。

getPurchasesAsync()
获取所有玩家未使用的购买物品。作为最佳实践,一旦客户端表明它已准备好执行与支付相关的操作,游戏就应该获取当前玩家的购买。然后,游戏可以处理和消费等待消费的任何购买。
例子
FBInstant 。付款。getPurchasesAsync ()。然后(函数(购买){
  控制台。日志(购买); // [{产品编号: '12345',...},...] });  

· 抛出CLIENT_UNSUPPORTED_OPERATION
· 投掷PAYMENTS_NOT_INITIALIZED
· 引发NETWORK_FAILURE
返回Promise < Array < Purchase >>玩家为游戏购买的一组购买。

consumePurchaseAsync()
消耗属于当前玩家的特定购买。在向玩家提供产品效果之前,游戏应该要求消费所购买的产品。一旦购买成功消费,游戏应该立即向玩家提供他们购买的效果。
参数
· purchaseToken string应该使用的购买的购买标记。
例子
FBInstant 。付款。consumePurchaseAsync ('54321' )。然后(function (){ //购买成功消费!//游戏现在应该将产品提供给玩家});  


· 抛出CLIENT_UNSUPPORTED_OPERATION
· 投掷PAYMENTS_NOT_INITIALIZED
· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
返回Promise成功使用购买时解析的Promise。

onReady()
设置在付款操作可用时触发的回调。
参数
· callback 功能付款可用时执行的回调函数。
例子
FBInstant 。付款。onReady (函数(){
  控制台。日志('付款准备好了!' )});  
返回void

getLocale()
当前的语言环境。有关 支持的区域设置值的完整列表,请参阅https://origincache.facebook.com/developers/resources/?id=FacebookLocales.xml。使用此选项可确定当前游戏应使用哪种语言进行本地化。在FBInstant.startGameAsync()结算之前,该值将不准确。
例子
//应该在FBInstant.startGameAsync()//结算后调用此函数。var locale = FBInstant 。getLocale (); //'en_US'  
返回字符串当前的语言环境。

getPlatform()
游戏当前运行的平台。在FBInstant.initializeAsync()结算之前,该值始终为null。
例子
//应该在FBInstant.initializeAsync()//结算后调用此函数。var platform = FBInstant 。getPlatform (); //'IOS'  
返回平台

getSDKVersion()
SDK版本的字符串表示形式。
例子
//应该在FBInstant.initializeAsync()//结算后调用此函数。var sdkVersion = FBInstant 。getSDKVersion (); //'2.0'  
返回字符串 SDK版本。

initializeAsync()
初始化SDK库。应该在任何其他SDK函数之前调用它。
例子
FBInstant 。initializeAsync ()。然后(函数(){ //初始化之前完成多项性能为null。//这是一个好地方来接他们:VAR 区域= FBInstant 。的getLocale (); // 'EN_US' 变种平台= FBInstant 。getPlatform ( ); // 'IOS' 变种sdkVersion = FBInstant 。getSDKVersion (); // '3.0' 变种playerID = FBInstant 。播放器





   getID (); });
· 抛出INVALID_OPERATION
返回PromiseSDK准备好使用时解析的promise。

setLoadingProgress()
报告游戏的初始加载进度。
参数
· percentage number 0到100之间的数字。
例子
FBInstant 。setLoadingProgress (50 ); //资产加载50%
返回void

getSupportedAPIs()
提供客户端支持的API函数列表。
例子
//应该在FBInstant.initializeAsync()//结算后调用此函数。FBInstant 。getSupportedAPIs (); // ['getLocale','initializeAsync','player.getID','context.getType',...]
返回Array < string >客户端明确支持的API函数列表。

getEntryPointData()
返回与启动游戏的入口点关联的任何数据对象。
对象的内容是开发人员定义的,可以从不同平台上的入口点进行。对于较旧的移动客户端,以及没有与特定入口点关联的数据,这将返回null。
应该在FBInstant.startGameAsync()解析后调用此函数。
例子
//应该在FBInstant.startGameAsync()//结算后调用此函数。const entryPointData = FBInstant 。getEntryPointData ();
返回对象与当前入口点关联的数据。

getEntryPointAsync()
返回游戏启动的入口点。
FBInstant.startGameAsync解决之前,不应调用此函数。
例子
//应该在FBInstant.startGameAsync()//结算后调用此函数。FBInstant 。getEntryPointAsync ()。然后(入口点=> 控制台。日志(入口点)); //'admin_message'
返回string用户启动游戏的入口点的名称

setSessionData()
设置与当前上下文的单个游戏会话相关联的数据。
只要游戏想要更新当前会话数据,就应该调用此函数。该会话数据可用于填充各种有效载荷,例如游戏webhook。
参数
· sessionData Object一个任意数据对象,在进行字符串化时必须小于或等于1000个字符。
例子
FBInstant 。setSessionData ({ coinsEarned :10 ,eventsSeen :[ 'start' ,...]});   
返回void

startGameAsync()
这表明游戏已完成初始加载并准备开始。返回的promise将解析后,上下文信息将是最新的。
例子
FBInstant 。startGameAsync ()。然后(函数(){
  myGame 。开始(); });
· 抛出INVALID_PARAM
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise一个在游戏开始时解决的承诺。

shareAsync()
这将调用一个对话框,让用户共享指定的内容,可以是Messenger中的消息,也可以是用户时间轴上的帖子。可以将一团数据附加到共享,从共享启动的每个游戏会话都可以从FBInstant.getEntryPointData()访问。在字符串化时,此数据必须小于或等于1000个字符。用户可以选择取消共享操作并关闭对话框,并且无论用户是否实际共享内容,对话框关闭时返回的承诺都将得到解决。
参数
· payload SharePayload指定要共享的内容。详情请见示例。
例子
FBInstant 。shareAsync ({
  intent :'REQUEST' ,
  image :base64Picture ,
  text :'X正在寻求帮助!' ,
  数据:{ myReplayData :'...' },})。然后(function (){ //继续游戏。});      

· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
· 抛出INVALID_OPERATION
返回Promise在共享完成或取消时解析的promise。

updateAsync()
通知Facebook游戏中发生的更新。这将暂时控制Facebook,Facebook将根据更新的内容决定做什么。当Facebook将控制权返回给游戏时,返回的承诺将解决/拒绝。
参数
· payload UpdatePayload描述更新的有效内容。
例子
//这将发布自定义更新。如果游戏是在Messenger //聊天线程中播放的,那么这将使用指定的//图像和文本消息将消息发布到线程中。当人们从这个//消息启动游戏时,那些游戏会话将能够通过FBInstant.getEntryPointData()访问指定的数据blob //。FBInstant 。updateAsync ({
  action :'CUSTOM' ,
  cta :'Join The Fight' ,
  image :base64Picture ,
  text :{ default :'X刚入侵Y的村庄!' ,   

    本地化:{
      ar_AR :'X \ u0641 \ u0642 \ u0637 \ u063A \ u0632 \ u062A' + '\ u0642 \ u0631 \ u064A \ u0629 Y!' ,
      en_US :'X只是入侵了Y的村庄!' ,
      es_LA :'\ u00A1X acaba de invadir el pueblo de Y!' ,} }
  template :'VILLAGE_INVASION' ,
  data :{ myReplayData :'...' },
  策略:'IMMEDIATE' ,
  通知:'NO_PUSH' ,})。   


        function (){ //在发布更新后关闭游戏。FBInstant 。退出(); });


· 抛出INVALID_PARAM
· 抛出PENDING_REQUEST
· 抛出INVALID_OPERATION
返回PromiseFacebook将控制权交还给游戏时解决的承诺。

switchGameAsync()
请求客户端切换到其他即时游戏。如果交换机失败,API将拒绝 - 否则,客户端将加载新游戏。
参数
· appID string要切换到的即时游戏的应用程序ID。该应用程序必须是即时游戏,并且必须属于与当前游戏相同的业务。要将不同游戏与同一业务相关联,您可以使用Business Manager: https //developers.facebook.com/docs/apps/business-manager#update-business
· data 对象可选的数据有效负载。这将被设置为切换到的游戏的入口点数据。字符串化时必须小于或等于1000个字符。
例子
FBInstant 。switchGameAsync ('12345678' )。catch (function (e ){ // Handle game change failure });  

· 引发USER_INPUT
· 抛出INVALID_PARAM
· 抛出PENDING_REQUEST
· 引发CLIENT_REQUIRES_UPDATE
返回Promise

canCreateShortcutAsync()
返回用户是否有资格请求创建快捷方式。
如果createShortcutAsync已被调用此会话,或者用户不符合创建快捷方式的条件,则返回false。
例子
FBInstant 。canCreateShortcutAsync ()。然后(函数(canCreateShortcut ){ 如果(canCreateShortcut ){ FBInstant 。createShortcutAsync () 。然后(函数(){ //创建快捷方式}) 。捕获(功能(){ //快捷方式没有创建}); } });











· 抛出PENDING_REQUEST
· 引发CLIENT_REQUIRES_UPDATE
· 抛出INVALID_OPERATION
返回Promise < boolean >如果游戏可以请求玩家创建游戏的快捷方式,则解析为true,否则返回false

createShortcutAsync()
如果用户符合条件,则提示用户创建游戏的快捷方式每个会话只能调用一次。(参见canCreateShortcutAsync
例子
FBInstant 。canCreateShortcutAsync ()。然后(函数(canCreateShortcut ){ 如果(canCreateShortcut ){ FBInstant 。createShortcutAsync () 。然后(函数(){ //创建快捷方式}) 。捕获(功能(){ //快捷方式没有创建}); } });











· 引发USER_INPUT
· 抛出PENDING_REQUEST
· 引发CLIENT_REQUIRES_UPDATE
· 抛出INVALID_OPERATION
返回Promise

放弃(
退出游戏。
例子
FBInstant 。退出();
返回void

logEvent()
使用FB Analytics记录应用程序事件。 有关FB Analytics的更多详细信息,请参阅 https://developers.facebook.com/docs/javascript/reference/v2.8#app_events
参数
· eventName string事件的名称。必须为2到40个字符,并且只能包含“_”,“ - ”,“和”字母数字字符。
· valueToSum number FB Analytics可以计算总和的可选数值。
· parameters Object一个可选对象,最多可包含25个与事件一起记录的键值对。键必须为2到40个字符,并且只能包含“_”,“ - ”,“和”字母数字字符。值的长度必须小于100个字符。
例子
var logged = FBInstant 。logEvent ('my_custom_event' ,42 ,{ custom_property :'custom_value' },);



返回APIError事件未能记录时的错误; 否则返回null。

onPause()
设置在触发暂停事件时触发的回调。
参数
· func 功能发生暂停事件时调用的函数。
例子
FBInstant 。在onPause (函数(){
  控制台。日志('暂停事件被触发!' ); })
返回void

getInterstitialAdAsync()
尝试创建插页式广告的实例。然后可以预加载并呈现该实例。
参数
· placementID 字符串在受众网络设置中设置的展示位置ID。
例子
FBInstant 。getInterstitialAdAsync ('my_placement_id' ,)。然后(函数(间质性){
  间质性。getPlacementID (); // 'my_placement_id' });

· 抛出ADS_TOO_MANY_INSTANCES
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise使用#adinstance解析的 promise,如果无法创建,则拒绝#apierror

getRewardedVideoAsync()
尝试创建奖励视频的实例。然后可以预加载并呈现该实例。
参数
· placementID 字符串在受众网络设置中设置的展示位置ID。
例子
FBInstant 。getRewardedVideoAsync ('my_placement_id' ,)。然后(函数(rewardedVideo ){
  rewardedVideo 。getPlacementID (); // 'my_placement_id' });

· 抛出ADS_TOO_MANY_INSTANCES
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise使用#adinstance解析的 promise,如果无法创建,则拒绝#apierror

matchPlayerAsync()
尝试将当前播放器与寻找其他人的其他用户进行匹配。如果成功,将创建包含匹配的玩家的新Messenger组线程,并且播​​放器将被上下文切换到该线程。一个匹配线程中的默认最小和最大玩家数分别为2和20,具体取决于在同一时间内尝试匹配的玩家数量。可以在fbapp-config.json中更改这些值。 有关fbapp-config.json的文档,请参阅[Bundle Config文档] https://developers.facebook.com/docs/games/instant-games/bundle-config
参数
· matchTag 字符串有关用于将其与类似玩家分组的玩家的可选额外信息。玩家只能与具有完全相同标签的其他玩家分组。标签只能包含字母,数字和下划线,长度不得超过100个字符。
· switchContextWhenMatched boolean可选的额外参数,指定在找到匹配项时是否应立即将播放器切换到新上下文。默认情况下,这将是false,这意味着玩家在匹配后需要明确按下播放以切换到新的上下文。
例子
FBInstant 。matchPlayerAsync ('level1' )。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 12345 });




FBInstant 。matchPlayerAsync ()。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 3456 });




FBInstant 。matchPlayerAsync (null ,true )。然后(函数(){
    控制台。登录(FBInstant 。上下文。的getID ()); // 3456 });




· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 引发USER_INPUT
· 抛出PENDING_REQUEST
· 抛出CLIENT_UNSUPPORTED_OPERATION
· 抛出INVALID_OPERATION
返回Promise一个promise,当玩家被添加到组线程并切换到线程的上下文时解析。

checkCanPlayerMatchAsync()
检查当前播放器是否符合matchPlayerAsync API的条件。
例子
FBInstant 。checkCanPlayerMatchAsync ()。然后(canMatch => { 如果(canMatch ){ FBInstant 。matchPlayerAsync ('1级' ); } });






· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
返回Promise < boolean >如果玩家有资格与其他玩家匹配则返回true的保证,否则返回false。

getLeaderboardAsync()
获取属于此即时游戏的特定排行榜。
参数
· name string排行榜的名称。即时游戏的每个排行榜都必须有自己独特的名称。
例子
FBInstant 。getLeaderboardAsync ('my_awesome_leaderboard' )。然后(排行榜=> {
    控制台。登录(排行榜。的getName ()); // 'my_awesome_leaderboard' });


· 抛出LEADERBOARD_NOT_FOUND
· 引发NETWORK_FAILURE
· 抛出CLIENT_UNSUPPORTED_OPERATION
· 抛出INVALID_OPERATION
· 抛出INVALID_PARAM
返回Promise < Leaderboard >使用匹配的排行榜解析的承诺,如果找不到,则拒绝。

LocalizationsDict
表示从语言环境到给定字符串的翻译的映射。每个属性都是xx_XX形式的可选五字符Facebook区域代码。有关 支持的区域设置代码的完整列表,请参阅https://origincache.facebook.com/developers/resources/?id=FacebookLocales.xml
类型:对象

APIERROR
Instant Games SDK返回的API错误

相关的错误代码
键入:ErrorCodeType

信息
描述错误的消息
输入:string

SignedPlayerInfo
代表有关播放器的信息以及签名,以验证它确实来自Facebook。

getPlayerID()
获取播放器的ID。
例子
FBInstant 。球员。getSignedPlayerInfoAsync ()。然后(函数(结果){
    结果。getPlayerID (); //相同的值FBInstant.player.getID()});


返回string字符串播放器的ID

getSignature()
用于验证此对象的签名确实来自Facebook。该字符串是base64url编码的,并根据OAuth 2.0规范使用您的App Secret的HMAC版本进行签名。
您可以使用以下4个步骤对其进行验证:
· 将签名拆分为由“。”分隔的两个部分。字符。
· 使用base64url编码解码第一部分(编码签名)。
· 使用base64url编码解码第二部分(响应有效负载),该编码应该是具有以下字段的JSON对象的字符串表示:** algorithm - 始终等于HMAC-SHA256 ** issued_at - 此响应时的unix时间戳发出。** player_id - 播放器的唯一标识符。** request_payload - 调用FBInstant.player.getSignedPlayerInfoAsync时指定的requestPayload字符串。
· 使用HMAC SHA-256和您的app secret来散列整个响应有效负载字符串,并确认它等于编码签名。
· 您可能还希望验证响应有效内容中的issued_at时间戳,以确保最近发出请求。
签名验证应该只在您的服务器上进行。永远不要在客户端这样做,因为它会危及您的应用程序密钥。
例子
FBInstant 。球员。getSignedPlayerInfoAsync ()。然后(函数(结果){
    结果。getSignature (); // Eii6e636mz5J47sfqAYEK40jYAwoFqi3x5bxHkPG4Q4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTUwMDM5ODY3NSwicGxheWVyX2lkIjoiMTI0OTUyNTMwMTc1MjIwMSIsInJlcXVlc3RfcGF5bG9hZCI6Im15X2ZpcnN0X3JlcXVlc3QifQ });



返回string签名字符串。

ConnectedPlayer
表示有关连接到当前玩家的玩家的信息。

getID()
获取已连接播放器的ID。
返回string连接的播放器的ID

getName()
获取玩家的全名。
返回字符串玩家的全名

getPhoto()
获取播放器的公开个人资料照片。
返回字符串玩家公开个人资料照片的网址

ContextPlayer
表示有关当前玩家正在玩的上下文中的玩家的信息。

getID()
获取上下文播放器的ID。
返回string上下文播放器的ID

getName()
获取播放器的本地化显示名称。
返回字符串播放器的本地化显示名称。

getPhoto()
获取播放器的公开个人资料照片。
返回字符串玩家公开个人资料照片的网址

AdInstance
表示广告的实例。

getPlacementID()
返回此广告实例的受众群体展示位置ID。

loadAsync()
预加载广告。返回的promise在预加载完成时解析,如果失败则拒绝。
例子
FBInstant 。getInterstitialAdAsync ('my_placement_id' ,)。然后(函数(间质性){ 返回间质性。loadAsync (); })。然后(function (){ // Ad loaded });



· 抛出ADS_FREQUENT_LOAD
· 抛出ADS_NO_FILL
· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
返回Promise

showAsync()
展示广告。当用户完成观看广告时,返回的承诺会解决,如果广告在广告期间未能出现或已关闭,则拒绝承诺。
例子
var ad = null ; FBInstant 。getRewardedVideoAsync ('my_placement_id' ,)。然后(函数(rewardedVideo ){
  广告= rewardedVideo ; 返回广告。loadAsync (); })。然后(函数(){ //加载广告返回广告。showAsync (); })。然后(function (){ //广告观看});





· 抛出ADS_NOT_LOADED
· 抛出INVALID_PARAM
· 引发NETWORK_FAILURE
· 抛出INVALID_OPERATION
返回Promise

产品
代表游戏的产品信息。
类型:对象
属性
· title string产品的标题
· productID string产品的游戏指定标识符
· description 字符串产品说明
· imageURI 字符串指向产品相关图像的链接
· price string产品的价格
· priceCurrencyCode string产品的货币代码

ContextFilter
可以应用于上下文选择操作'NEW_CONTEXT_ONLY'的过滤器 - 更喜欢仅表面上下文之前尚未播放的游戏。'INCLUDE_EXISTING_CHALLENGES' - 包括“现有挑战”部分,该部分显示了玩家所属的主动上场情节。'NEW_PLAYERS_ONLY' - 在包含个人的部分中,更喜欢没有玩过游戏的人。
类型:("NEW_CONTEXT_ONLY"| "INCLUDE_EXISTING_CHALLENGES"| "NEW_PLAYERS_ONLY")

平台
表示用户正在播放的当前平台。
类型 "IOS"| "ANDROID"| "WEB"| "MOBILE_WEB")

ContextSizeResponse
如果当前上下文大小介于对象中指定的minSize和maxSize值之间,则answer字段为true,否则为false。
键入:{answer:booleanminSize:number?,maxSize:number}

采购
代表个人购买游戏产品。
类型:对象
属性
· developerPayload 字符串购买产品期间提供的开发人员指定的字符串
· paymentID string购买交易的标识符
· productID string产品的游戏指定标识符
· purchaseTime string发生购买时的Unix时间戳
· purchaseToken 字符串表示可用于消费购买的购买的标记
· signedRequest SignedPurchaseRequest服务器签名的购买请求编码

排行榜
即时游戏排行榜

getName()
排行榜的名称。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){
    控制台。日志(排行榜。的getName ()); // my_leaderboard });


返回字符串

getContextID()
排行榜与之关联的上下文的ID,如果排行榜未与特定上下文绑定,则为null。
例子
FBInstant 。getLeaderboardAsync ('contextual_leaderboard' )。然后(函数(排行榜){
    控制台。登录(排行榜。getContextID ()); // 12345678 });


FBInstant 。getLeaderboardAsync ('global_leaderboard' )。然后(函数(排行榜){
    控制台。日志(排行榜。getContextID ()); //空});


返回字符串

getEntryCountAsync()
获取排行榜中玩家条目的总数。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getEntryCountAsync (); }) 。然后(函数(计数){ 控制台。日志(计数); }); // 24




· 引发NETWORK_FAILURE
· 抛出RATE_LIMITED
返回Promise < number >播放器的唯一标识符。

setScoreAsync()
更新玩家的分数。如果玩家具有现有分数,则只有在新分数优于其时才会替换旧分数。注意:如果排行榜与特定上下文相关联,则游戏必须在该上下文中为玩家设置分数。
参数
· score number玩家的新分数。必须是64位整数。
· extraData string= // 2与存储的分数关联的元数据。大小必须小于2KB。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。setScoreAsync (42 ,'{种族: “小精灵”,级别:3}' ); }) 。然后(函数(条目){
    控制台。日志(条目。getScore ()); // 42
    控制台。日志(条目。



    getExtraData ()); //'{race:“elf”,等级:3}' });

· 抛出LEADERBOARD_WRONG_CONTEXT
· 引发NETWORK_FAILURE
· 抛出INVALID_PARAM
· 抛出INVALID_OPERATION
· 抛出RATE_LIMITED
返回Promise < LeaderboardEntry >在更新后使用播放器的当前排行榜条目解析。

getPlayerEntryAsync()
检索当前播放器的排行榜条目,如果播放器尚未设置,则返回null。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getPlayerEntryAsync (); }) 。然后(函数(条目){
    控制台。日志(条目。getRank ()); // 2
    控制台。日志(条目。getScore ()); // 42
    控制台。



     日志(入口。getExtraData ()); //'{race:“elf”,等级:3}' });

· 引发NETWORK_FAILURE
· 抛出INVALID_OPERATION
· 抛出RATE_LIMITED
返回Promise < LeaderboardEntry >?解决了播放器当前的排行榜条目。

getEntriesAsync()
检索一组排行榜条目,按排行榜中的分数排名排序。
参数
· count number尝试从排行榜获取的条目数。如果未指定,则默认为10。目前,每个查询最多可以获取100个条目。
· offset number从排行榜顶部开始的条目,即从中获取条目。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getEntriesAsync (); }) 。然后(功能(项){
    控制台。日志(条目。长度); // 10
    控制台。登录(条目[ 0 ]。getRank ()); // 1




    控制台。log (entries [ 0 ] .getScore ()); // 42
    台。log (entries [ 1 ] .getRank ()); // 2
    控制台。log (entries [ 1 ] .getScore ()); // 40 });   

FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getEntriesAsync (5 ,3 ); }) 。然后(功能(项){
    控制台。日志(条目。长度); // 5
    控制台。日志(条目[ 0 ]。



    getRank ()); // 4
    控制台。log (entries [ 0 ] .getScore ()); // 34
    控制台。log (entries [ 1 ] .getRank ()); // 5
    控制台。log (entries [ 1 ] .getScore ()); // 31 });   

· 引发NETWORK_FAILURE
· 抛出RATE_LIMITED
返回Promise < Array < LeaderboardEntry >>使用与查询匹配的排行榜条目解析。

getConnectedPlayerEntriesAsync()
检索当前玩家的连接玩家(包括当前玩家)的排行榜得分条目,按照连接玩家组中的本地排名排序。
参数
· count number尝试从排行榜获取的条目数。如果未指定,则默认为10。目前,每个查询最多可以获取100个条目。
· offset number从要获取的有序连接玩家得分条目集的偏移量。
例子
FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getConnectedPlayerEntriesAsync (); }) 。然后(功能(项){
    控制台。日志(条目。长度); // 10
    控制台。登录(条目[ 0 ]。getRank ()); // 1




    控制台。log (entries [ 0 ] .getScore ()); // 42
    台。log (entries [ 1 ] .getRank ()); // 2
    控制台。log (entries [ 1 ] .getScore ()); // 40 });   

FBInstant 。getLeaderboardAsync ('my_leaderboard' )。然后(函数(排行榜){ 返回排行榜。getConnectedPlayerEntriesAsync (5 ,3 ); }) 。然后(功能(项){
    控制台。日志(条目。长度); // 5
    控制台。日志(条目[ 0 ]。



    getRank ()); // 4
    控制台。log (entries [ 0 ] .getScore ()); // 34
    控制台。log (entries [ 1 ] .getRank ()); // 5
    控制台。log (entries [ 1 ] .getScore ()); // 31 });   

· 引发NETWORK_FAILURE
· 抛出RATE_LIMITED
返回Promise < Array < LeaderboardEntry >>使用与查询匹配的排行榜条目解析。

SharePayload
表示要由用户共享的内容。
类型:对象
属性
· intent "INVITE"| "REQUEST"| "CHALLENGE"| "SHARE"表示共享的意图。
· image string要共享的base64编码图像。
· text string要共享的文本消息。
· data 对象要附加到共享的数据blob。从共享启动的所有游戏会话都可以通过FBInstant.getEntryPointData()访问此blob。

UpdateAction
表示要执行的更新操作的类型。
属性
· CUSTOM 字符串自定义更新,包含游戏指定的所有内容。
· LEADERBOARD 字符串与即时游戏排行榜相关联的更新。

错误代码
Instant Games API可能返回的错误代码
属性
· ADS_FREQUENT_LOAD 字符串广告过于频繁地加载。
· ADS_NO_FILL 字符串我们无法向当前用户投放广告。如果用户在其设备上选择停用针对用户兴趣的广告,或者我们没有为该用户展示广告资源,则可能会发生这种情况。
· ADS_NOT_LOADED string尝试显示尚未成功加载的广告。
· ADS_TOO_MANY_INSTANCES 字符串并发广告实例太多。在创建新广告实例之前加载并显示它们。
· ANALYTICS_POST_EXCEPTION 字符串分析API在尝试发布事件时遇到问题。
· CLIENT_REQUIRES_UPDATE string [已弃用] - 客户端需要更新才能访问返回此结果的功能。如果在Web上返回此结果,则表示Web客户端尚不支持该功能。在v5.0及更高版本中不推荐使用CLIENT_UNSUPPORTED_OPERATION
· CLIENT_UNSUPPORTED_OPERATION string客户端不支持当前操作。这可能是由于客户端版本或平台缺乏支持,或者因为游戏或播放器不允许操作。
· INVALID_OPERATION string请求的操作无效或当前游戏状态。这可能包括违反限制的请求,例如超出存储阈值,或者在某种状态下不可用,例如在独立上下文中生成特定于上下文的请求。
· INVALID_PARAM string传递给API的参数无效。可以指示不正确的类型,无效的参数数量或语义问题(例如,将不可序列化的对象传递给序列化函数)。
· LEADERBOARD_NOT_FOUND string找不到具有所请求名称的排行榜。排行榜尚未存在,或者名称与游戏的任何已注册排行榜配置都不匹配。
· LEADERBOARD_WRONG_CONTEXT string尝试写入与当前正在播放游戏之外的上下文关联的排行榜。
· NETWORK_FAILURE string客户端遇到网络请求问题。这可能是由于一个短暂的问题,例如玩家的互联网连接下降。
· PAYMENTS_NOT_INITIALIZED 字符串客户端尚未完成设置付款或未接受付款API调用。
· PENDING_REQUEST string表示由于与此冲突冲突的现有请求而导致的拒绝。例如,当另一个依赖于Facebook UI的请求待处理时,我们将拒绝任何会显示Facebook UI的调用。
· RATE_LIMITED string过于频繁地调用某些API或操作。这可能是由于游戏在很短的时间内调用特定API的次数过多。降低请求率应该会导致此错误消失。
· SAME_CONTEXT string游戏尝试执行上下文切换到当前上下文。
· UNKNOWN string发生未知或未指定的问题。这是客户端未指定代码时返回的默认错误代码。
· USER_INPUT string用户做出了导致拒绝的选择。例如,如果游戏调出Context Switch对话框并且播放器将其关闭,则此错误代码将包含在promise promise中。
例子
FBInstant 。startGameAsync ()。捕捉(函数(é ){
  控制台。日志(ë ); }); // {code:'CLIENT_UNSUPPORTED_OPERATION',消息:'...'}

ErrorCodeType
一个即时游戏错误代码,errorcode之一
输入:string

SignedPurchaseRequest
输入:string
例子
Eii6e636mz5J47sfqAYEK40jYAwoFqi3x5bxHkPG4Q4 。eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTUwMDM5ODY3NSwicGxheWVyX2lkIjoiMTI0OTUyNTMwMTc1MjIwMSIsInJlcXVlc3RfcGF5bG9hZCI6Im15X2ZpcnN0X3JlcXVlc3QifQ

PurchaseConfig
注册到游戏的产品的购买请求的配置。
类型:对象
属性
· productID string要购买的产品的标识符
· developerPayload 字符串可选的开发人员指定的有效负载,包含在已退回购买的已签名请求中。

CustomUpdatePayload
表示自定义更新FBInstant.updateAsync。请注意,如果未提供本地化内容,则Facebook提供的本地化字符串将用于号召性用语和文本。
该default字符串应该是英文。
类型:对象
属性
· action UpdateAction对于自定义更新,这应该是“CUSTOM”。
· template 此自定义更新正在使用的模板的字符串 ID。模板应该在fbapp-config.json中预定义。有关fbapp-config.json的文档,请参阅[Bundle Config文档]https://developers.facebook.com/docs/games/instant-games/bundle-config
· cta string| LocalizableContent?)可选的号召性用语按钮文字。默认情况下,我们将使用本地化的“播放”作为按钮文本。要提供自己的号召性用语的本地化版本,请使用默认cta作为'default'的值传递对象,将另一个对象映射到翻译作为'localizations'的值。
· image string base64编码图像的数据URL。
· text string | LocalizableContent一条文本消息,或一个默认文本为'default'的对象,另一个对象将语言环境键映射为'localizations'的值。
· data 对象要附加到更新的数据blob。从更新启动的所有游戏会话都可以通过FBInstant.getEntryPointData()访问此blob。字符串化时必须小于或等于1000个字符。
· strategy 字符串指定应如何传递更新。这可以是以下之一:'IMMEDIATE' - 应立即发布更新。'LAST' - 更新应在游戏会话结束时发布。使用“最后”策略发送的最新更新将是发送的更新。'IMMEDIATE_CLEAR' - 更新立即发布,并清除所有其他待处理的更新(例如使用'LAST'策略发送的更新)。如果未指定策略,则默认为“IMMEDIATE”。
· notification 字符串指定自定义更新的通知设置。这可以是'NO_PUSH'或'PUSH',默认为'NO_PUSH'。仅对具有高信号且可立即为收件人操作的更新使用推送通知。另请注意,根据用户设置和平台策略,并不总能保证推送通知。

LeaderboardUpdatePayload
表示FBInstant.updateAsync的排行榜更新。
类型:对象
属性
· action UpdateAction对于排行榜更新,这应该是'LEADERBOARD'。文本。默认情况下,我们将使用本地化的“立即播放”作为按钮文本。
· name string要在更新中显示的排行榜的名称。
· text 字符串可选的短信。如果未指定,则将提供本地化回退消息。

LocalizableContent
表示具有本地化的字符串和要重新使用的默认值。
类型:对象
属性
· default string如果查看者的语言环境不是本地化对象中的键,则使用的字符串的默认值。
· localizations LocalizationsDict指定每个语言环境中用于查看者的字符串。有关 支持的区域设置值的完整列表,请参阅https://origincache.facebook.com ... FacebookLocales.xml

LeaderboardEntry
即时游戏排行榜的分数条目

getScore()
获取与条目关联的分数。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。登录(条目。getScore ()); // 9001 });


返回数字返回整数分数值。

getFormattedScore()
获取与条目关联的分数,使用与排行榜关联的分数格式进行格式化。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。登录(条目。getFormattedScore ()); // '900.01米});


返回字符串返回格式化的分数。

getTimestamp()
获取上次更新排行榜条目的时间戳。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。登录(条目。getTimestamp ()); // 1515806355 });


返回number返回Unix时间戳。

getRank()
获取排行榜中玩家得分的排名。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。登录(条目。getRank ()); // 2 });


返回数字返回条目的排行榜排名。

getExtraData()
获取与分数关联的开发人员指定的有效内容,如果未设置,则返回null。
例子
排行榜。setScoreAsync (42 ,'{race:“elf”,level:3}' ); 。然后(函数(条目){
    控制台。登录(条目。getExtraData ()); // '{种族: “小精灵”,级别:3}' });


返回字符串与分数关联的可选开发人员指定的有效负载。

getPlayer()
获取有关与条目关联的播放器的信息。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。日志(条目。getPlayer ()。的getName ()); //萨利});



LeaderboardPlayer
有关与分数条目相关联的玩家的详细信息。

getName()
获取播放器的本地化显示名称。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。日志(条目。getPlayer ()。的getName ()); //萨利});


返回字符串播放器的本地化显示名称。

getPhoto()
返回玩家公开个人资料照片的网址。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。日志(条目。getPlayer ()。getPhoto ()); // <HOTO_URL> });


返回字符串网址为玩家的公开个人资料照片。

getID()
获取游戏的唯一标识符。
例子
排行榜。setScoreAsync (9001 )。然后(函数(条目){
    控制台。登录(条目。getPlayer ()。的getID ()); // 12345678 });


返回字符串玩家的游戏范围标识符。
为方便大家群策群力,创建了一个 Facebook Instant Game   交流群:814298516 欢迎同们加入交流开发和运营经验。


回复

使用道具 举报

0

主题

2

帖子

14

积分

新手上路

Rank: 1

积分
14
沙发
发表于 2018-8-20 18:24:59 | 只看该作者
辛苦翻译,不过因为是机翻所以还请有空的时候修改一下吧,毕竟“FBInstant.player”可以获取到对象而“FBInstant.播放器”获取不到
回复 支持 反对

使用道具 举报

44

主题

58

帖子

327

积分

实习版主

Rank: 7Rank: 7Rank: 7

积分
327
板凳
 楼主| 发表于 2018-8-21 08:57:45 | 只看该作者
OniSaku1024 发表于 2018-8-20 18:24
辛苦翻译,不过因为是机翻所以还请有空的时候修改一下吧,毕竟“FBInstant.player”可以获取到对象而“FBIn ...

没问题
回复 支持 反对

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表