Facebook 小遊戲開發更新文件 API 參考文件 v6.0

xiaojiezi_2005發表於2018-08-06

Facebook 遊戲開發更新文件

API 參考文件 v6.0

 

更新日誌

1.  排行榜  此版本全新推出排行榜 API!提供一套強大的 API, 使得遊戲可獲取排行榜、查詢得分 情況和設定新分數(支援分數所帶的 任意後設資料),並可向 Messenger 對話推送結構化的排行榜 更新訊息。

2.  [公測版] 遊戲內切換  我們還針對遊戲內交叉推廣引入了一個新 API。它目前 處於封測階段,如果您有興趣在自己的遊戲中幫忙 測試遊戲內切換 API 的整合效果,請聯絡 您的合作伙伴經理!

 

FBInstant

小遊戲 SDK 的頂級名稱空間。

 

player

包含與當前玩家相關的功能和屬性。

 

getID( )

玩家的唯一標識。 Facebook 使用者的玩家編號 將保持不變,且僅限於特定遊戲範圍。這意味著 同一個使用者在不同的遊戲中有不同的玩家編號。 僅當 FBInstant.initializeAsync() 被解析後才應呼叫此 函式。

示例

// This function should be called after FBInstant.initializeAsync()// resolves.var playerID = FBInstant.player.getID();

返回 字串  玩家的唯一標識。

 

getSignedPlayerInfoAsync( )

獲取玩家的唯一標識和簽名,簽名用於驗證標識確實 來自 Facebook,且沒有被篡改。 僅當 FBInstant.initializeAsync() 被解析後才應呼叫此 函式。

引數

· 

requestPayload 字串  開發者指定的包含於 已簽名響應中的負載。

· 

示例

// This function should be called after FBInstant.initializeAsync()// resolves.FBInstant.player.getSignedPlayerInfoAsync('my_metadata')

  .then(function (result) {

    // The verification of the ID and signature should happen on server side.

    SendToMyServer(

      result.getPlayerID(), // same value as FBInstant.player.getID()

      result.getSignature(),

      'GAIN_COINS',

      100);

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise < >  以   物件解析的 promise。

 

getName( )

經本地化顯示的玩家姓名。僅當 FBInstant.startGameAsync() 被解析後 才應呼叫此函式。

示例

// This function should be called after FBInstant.startGameAsync()// resolves.var playerName = FBInstant.player.getName();

返回 字串  經本地化顯示的玩家姓名。

 

getPhoto( )

玩家公開頭像的網址。此照片始終為正方形, 尺寸至少為 200x200 畫素。在遊戲中顯示時, 確切的尺寸可能會有所變化。建議 始終在顯示之前將圖片調整為需要的尺寸。 對應的值將始終為 null,直至 FBInstant.startGameAsync() 被解析。

警告:由於使用 CORS 機制,在遊戲 Canvas 中使用這些照片會導致照片 損壞,這有礙於提取 Canvas 資料。 為防止出現這種情況,應將您使用的圖片的 cross-origin 屬性設定為 “anonymous”。

示例

var playerImage = new Image();

playerImage.crossOrigin = 'anonymous';// This function should be called after FBInstant.startGameAsync()// resolves.

playerImage.src = FBInstant.player.getPhoto();

返回 字串  玩家公開頭像的網址。

 

getDataAsync( )

從指定的雲端儲存中檢索當前玩家的資料。

引數

· 

keys 陣列 < 字串 >  唯一鍵陣列,資料檢索將針對這些鍵展開。

· 

示例

FBInstant.player

  .getDataAsync(['achievements', 'currentLife'])

  .then(function(data) {

     console.log('data is loaded');

     var achievements = data['achievements'];

     var currentLife = data['currentLife'];

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise < 物件 >  此 promise 將在獲得 包含下列資訊的物件時被解析:輸入陣列中指定的每個鍵的 當前鍵值對(如存在)。

 

setDataAsync( )

設定要儲存到指定雲端儲存的當前玩家 的資料。對於每個獨立玩家,遊戲最多可儲存 1MB 的資料。

引數

· 

data 物件  此物件包含 應該儲存到雲端儲存的一組鍵值對。物件必須僅包含 可序列化的值 — 任何不可序列化的值都會導致 整個修改被拒絕。

· 

示例

FBInstant.player

  .setDataAsync({

    achievements: ['medal1', 'medal2', 'medal3'],

    currentLife: 300,

  })

  .then(function() {

    console.log('data is set');

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在輸入值設定時被解析。 注意:promise 被解析並 不一定 意味著輸入 已被儲存,而是這意味著相關資料有效 並已安排要被儲存。這還能保證設定的所有值 現在可在 player.getDataAsync 中使用。

 

flushDataAsync( )

立即將玩家資料的任何更改重新整理到指定的 雲端儲存中。此函式的呼叫成本較高, 應主要用於需要立即儲存並告知遊戲的 重要更改。非重要更改應依賴於開放平臺在後臺 進行儲存。 注意:當此函式的結果待定時, player.setDataAsync 呼叫將被拒絕。

示例

FBInstant.player

  .setDataAsync({

    achievements: ['medal1', 'medal2', 'medal3'],

    currentLife: 300,

  })

  .then(FBInstant.player.flushDataAsync)

  .then(function() {

    console.log('Data persisted to FB!');

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在更改儲存成功時被解析, 在更改儲存失敗時被拒絕。

 

getStatsAsync( )

從指定雲端儲存檢索當前玩家的統計資料。

引數

· 

keys 陣列 < 字串 >?  唯一鍵陣列(可選),針對這些鍵檢索 統計資料。如果呼叫函式時沒有設定此引數,則會提取所有統計資料。

· 

示例

FBInstant.player

  .getStatsAsync(['level', 'zombiesSlain'])

  .then(function(stats)) {

    console.log('stats are loaded');

    var level = data['level'];

    var zombiesSlain = data['zombiesSlain'];

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise < 物件 >  此 promise 將在獲得 包含下列資訊的物件時被解析:輸入陣列中指定的每個鍵的 當前鍵值對(如存在)。

 

setStatsAsync( )

設定要儲存到指定雲端儲存的當前玩家 的統計資料。

引數

· 

stats 物件  此物件包含應作為統計資料 儲存到雲端儲存的鍵值對,能以各種方式顯示或 使用這些資料以提高玩家參與度。物件必須 僅包含數值,任何非數值會導致整個 修改被拒絕。

· 

示例

FBInstant.player

  .setStatsAsync({

    level: 5,

    zombiesSlain: 27,

  })

  .then(function() {

    console.log('data is set');

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在輸入值設定時被解析。 注意:promise 被解析並 不一定 意味著輸入 已被儲存,而是這意味著相關資料經過驗證 並已安排要被儲存。這還能保證設定的所有值 現在可在 player.getStatsAsync 中使用。

 

incrementStatsAsync( )

儲存到指定雲端儲存的當前玩家 的增量統計資料。

引數

· 

increments 物件  此物件包含一組鍵值對, 這些鍵值對錶示雲端儲存中每個統計資料的增量是多少。物件必須 僅包含數值,任何非數值會導致整個 修改被拒絕。

· 

示例

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 < 物件 >  此 promise 將在獲得包含下列資訊的物件時被解析:輸入字典中指定的每個鍵 的更新鍵值對。 注意:解析 promise 並 不一定 意味著更改 已被儲存,而是意味著 增量有效且已安排要被執行 。這還能保證增加的所有值 現在可在 player.getStatsAsync 中使用。

 

getConnectedPlayersAsync( )

提取 ConnectedPlayer 物件的陣列,這些物件包含與當前玩家 關聯的玩家的資訊。

示例

var connectedPlayers = FBInstant.player.getConnectedPlayersAsync()

  .then(function(players) {

    console.log(players.map(function(player) {

      return {

        id: player.getID(),

        name: player.getName(),

      }

    }));

  });// [{id: '123456789', name: 'Paul Atreides'}, {id: '987654321', name: 'Duncan Idaho'}]

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise < 陣列 < >>  此 promise 將在 獲得關聯玩家物件列表時被解析。 注意:只有當 FBInstant.startGameAsync() 被解析時,此 promise 才會解析。

 

context

包含與當前遊戲環境相關的功能和屬性。

 

getID( )

當前遊戲環境的唯一標識。這表示 玩遊戲的特定環境(例如:特定的 Messenger 對話或 Facebook 帖子)。如果使用者在獨立環境中玩遊戲,則此標識將 為 null。僅當 FBInstant.startGameAsync 被解析後 才應呼叫此函式。

示例

// This function should be called after FBInstant.startGameAsync()// resolves.var contextID = FBInstant.context.getID();

返回 字串  當前遊戲環境的唯一標識。

 

getType( )

當前遊戲環境的型別。 POST — 一個 Facebook 帖子。 THREAD — 一個 Messenger 對話。 GROUP — 一個 Facebook 小組。 SOLO — 預設環境,玩家是唯一的參與者。

僅當 FBInstant.startGameAsync 被解析後才應呼叫此函式。

示例

// This function should be called after FBInstant.startGameAsync()// resolves.var contextType = FBInstant.context.getType();

返回 ( "POST"  |  "THREAD"  |  "GROUP"  |  "SOLO" )  當前遊戲環境的型別。

 

isSizeBetween( )

此函式用於確定加入當前遊戲環境的玩家 數量是否在給定的最小值和最大值之間(包括最小值和最大值)。僅當其中一個邊界值為 null 時, 才會根據另一個邊界值進行檢查。在特定 的遊戲會話中,此函式始終會返回某 環境內發出的第一個呼叫的最初結果。後續呼叫(無論引數是什麼)將返回 原始查詢的答案,除非遊戲環境發生變化且 查詢結果被重置。

僅當 FBInstant.startGameAsync 被解析後才應呼叫此函式。

如果提供的一個或兩個引數無效,我們沒有適合當前遊戲環境 的玩家數量,或者 API 在 startGameAsync() 解析之前被呼叫, 此引數都會為 null。

引數

· 

minSize 數字  環境規模查詢的最小邊界值。

· 

· 

minSize 數字  環境規模查詢的最大邊界值。

· 

· 

maxSize 數字

· 

示例

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}

console.log(FBInstant.context.isSizeBetween("test", 5)); (Context size = 4)// null

console.log(FBInstant.context.isSizeBetween(0, 100)); (Context size = null)// null

返回  

 

switchAsync( )

請求切換到指定環境。如果玩家沒有進入該環境的許可權, 或玩家未向遊戲提供進入 該環境的許可權,請求將被拒絕。 promise 將在 遊戲切換到指定環境時被解析。

引數

· 

id 字串  目標環境的編號。

· 

示例

console.log(FBInstant.context.getID());// 1122334455FBInstant.context

  .switchAsync('1234567890')

  .then(function() {

    console.log(FBInstant.context.getID());

    // 1234567890

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   SAME_CONTEXT

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   USER_INPUT

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在遊戲切換到指定環境時被解析, 在切換失敗時被拒絕。

 

chooseAsync( )

為玩家開啟一個環境選擇對話方塊。如果玩家選擇可用的環境, 客戶端將嘗試切換到這個環境, 並在成功時解析。而如果玩家退出選單或 客戶端未能切換到新環境,此函式 將被拒絕。

引數

· 

options 物件  此物件用於指定應提供 的環境選項。

· 

· 

options.filters 陣列 < >?  適用於環境推薦的一組篩選條件 。

· 

· 

options.maxSize 數字  在理想情況下,推薦環境應有 的最大玩家數量。

· 

· 

options.minSize 數字  在理想情況下,推薦環境應有 的最小玩家數量。

· 

示例

console.log(FBInstant.context.getID());// 1122334455FBInstant.context

  .chooseAsync()

  .then(function() {

    console.log(FBInstant.context.getID());

    // 1234567890

  });

console.log(FBInstant.context.getID());// 1122334455FBInstant.context

  .chooseAsync({

    filters: ['NEW_CONTEXT_ONLY'],

    minSize: 3,

  })

  .then(function() {

    console.log(FBInstant.context.getID());

    // 1234567890

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   SAME_CONTEXT

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   USER_INPUT

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在遊戲切換到使用者選擇的環境時 被解析。否則此 promise 將被拒絕 (例如使用者退出對話方塊)。

 

createAsync( )

嘗試在指定玩家和當前玩家之間建立環境或 切換環境。如果列出的玩家不是當前玩家的關聯玩家, 或玩家未提供進入新環境的許可權, 則返回的 promise 將被拒絕。 當遊戲切換到新環境時, promise 將被解析。

引數

· 

playerID 字串  玩家的編號

· 

示例

console.log(FBInstant.context.getID());// 1122334455FBInstant.context

  .createAsync('12345678')

  .then(function() {

    console.log(FBInstant.context.getID());

    // 5544332211

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   SAME_CONTEXT

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   USER_INPUT

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在遊戲切換到新環境時被解析, 在切換失敗時被拒絕。

 

getPlayersAsync( )

獲取    物件的陣列, 其中包含與當前環境相關的活躍玩家 (在過去 90 天內玩過遊戲的使用者)的資訊。這可能包含當前 玩家。

示例

var contextPlayers = FBInstant.context.getPlayersAsync()

  .then(function(players) {

    console.log(players.map(function(player) {

      return {

        id: player.getID(),

        name: player.getName(),

      }

    }));

  });// [{id: '123456789', name: 'Luke'}, {id: '987654321', name: 'Leia'}]

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise < 陣列 < >>

 

支付

[封閉公測] 包含與遊戲商品的支付和購買相關的 函式和屬性。

 

getCatalogAsync( )

獲取遊戲的商品目錄。

示例

FBInstant.payments.getCatalogAsync().then(function (catalog) {

  console.log(catalog); // [{productID: '12345', ...}, ...]});

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   PAYMENTS_NOT_INITIALIZED

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise < 陣列 < >>  登記到遊戲的 一組商品。

 

purchaseAsync( )

開始特定商品的購買流程。

引數

· 

purchaseConfig  該項購買的配置詳情。

· 

示例

FBInstant.payments.purchaseAsync({

  productID: '12345',

  developerPayload: 'foobar',}).then(function (purchase) {

  console.log(purchase);

  // {productID: '12345', purchaseToken: '54321', developerPayload: 'foobar', ...}});

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   PAYMENTS_NOT_INITIALIZED

· 

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise < >  此 promise 將在玩家成功購買 商品時被解析,否則會被拒絕。

 

getPurchasesAsync( )

獲取玩家未消費的所有購買商品。最佳做法是, 遊戲在客戶端表明已準備好執行支付相關操作時, 立即獲取當前玩家的購買商品。遊戲 隨後可處理和消費正在等待被消費的任何購買商品。

示例

FBInstant.payments.getPurchasesAsync().then(function (purchases) {

  console.log(purchase);

  // [{productID: '12345', ...}, ...]});

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   PAYMENTS_NOT_INITIALIZED

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise < 陣列 < >>  玩家為遊戲購買的 一組商品。

 

consumePurchaseAsync( )

消費當前玩家擁有的特定購買商品。在為玩家 配置商品效果之前,遊戲應先請求 消費已購買的商品。購買的商品成功 消費後,遊戲應立即向玩家呈現 購買商品的效果。

引數

· 

purchaseToken 字串  應消費的購買商品的 購買口令。

· 

示例

FBInstant.payments.consumePurchaseAsync('54321').then(function () {

  // Purchase successfully consumed!

  // Game should now provision the product to the player});

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   PAYMENTS_NOT_INITIALIZED

· 

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise  此 promise 在成功消費已購買的 商品時被解析。

 

onReady( )

設定一個回撥,在支付操作可進行時觸發。

引數

· 

callback 函式  當支付可進行時執行的 回撥函式。

· 

示例

FBInstant.payments.onReady(function () {

  console.log('Payments Ready!')});

返回   void

 

getLocale( )

當前的語言設定。根據這一結果確定當前的遊戲應本地化 為哪種語言。在 FBInstant.startGameAsync() 被解析之前,對應的值將不準確。

示例

// This function should be called after FBInstant.startGameAsync()// resolves.var locale = FBInstant.getLocale(); // 'en_US'

返回 字串  當前的語言設定。

 

getPlatform( )

當前執行遊戲的平臺。對應的值將始終為 null, 直至 FBInstant.initializeAsync() 被解析。

示例

// This function should be called after FBInstant.initializeAsync()// resolves.var platform = FBInstant.getPlatform(); // 'IOS'

返回

 

getSDKVersion( )

表示此 SDK 版本的字串。

示例

// This function should be called after FBInstant.initializeAsync()// resolves.var sdkVersion = FBInstant.getSDKVersion(); // '2.0'

返回 字串  SDK 版本。

 

initializeAsync( )

初始化 SDK 庫。應在呼叫其他任何 SDK 函式 之前呼叫此函式。

示例

FBInstant.initializeAsync().then(function() {

  // Many properties will be null until the initialization completes.

  // This is a good place to fetch them:

  var locale = FBInstant.getLocale(); // 'en_US'

  var platform = FBInstant.getPlatform(); // 'IOS'

  var sdkVersion = FBInstant.getSDKVersion(); // '3.0'

  var playerID = FBInstant.player.getID();});

· 

丟擲   INVALID_OPERATION

· 

返回   Promise  此 promise 將在 SDK 可以使用時被解析。

 

setLoadingProgress( )

報告遊戲的初始載入進度。

引數

· 

percentage 數字  介於 0 和 100 之間的數字。

· 

示例

FBInstant.setLoadingProgress(50); // Assets are 50% loaded

返回   void

 

getSupportedAPIs( )

提供客戶端支援的 API 函式的列表。

示例

// This function should be called after FBInstant.initializeAsync()// resolves.FBInstant.getSupportedAPIs();// ['getLocale', 'initializeAsync', 'player.getID', 'context.getType', ...]

返回 陣列 < 字串 >  客戶端顯式支援的 API 函式 列表。

 

getEntryPointData( )

返回與啟動遊戲的入口點相關的任何資料 物件。

物件內容由開發者定義,可透過不同平臺 的入口點觸發。對於較舊版本的移動客戶端, 以及沒有與特定入口點相關的資料時, 此函式會返回 null。

示例

// This function should be called after FBInstant.initializeAsync()// resolves.const entryPointData = FBInstant.getEntryPointData();

返回 物件  與當前入口點相關的資料。

 

getEntryPointAsync( )

返回啟動遊戲的入口點

示例

// This function should be called after FBInstant.startGameAsync()// resolves.FBInstant.getEntryPointAsync().then(entrypoint => console.log(entrypoint));// 'admin_message'

返回 字串  使用者啟動遊戲時所在的入口點的 名稱

僅當 FBInstant.startGameAsync() 被解析後 才應呼叫此函式。

 

setSessionData( )

為當前環境設定與單個遊戲會話相關的 資料。

當遊戲需要更新當前的會話資料時, 應呼叫此函式。此會話資料可用於填充各種負載, 如玩遊戲 Webhook。

引數

· 

sessionData 物件  一個隨機資料物件,轉變為字串後,必須小於 或等於 1000 個字元。

· 

示例

FBInstant.setSessionData({coinsEarned: 10, eventsSeen: ['start', ...]});

返回   void

 

startGameAsync( )

表示遊戲已完成初始載入, 並準備就緒可以開始遊戲。當返回的 promise 被解析時, 環境資訊即為最新。

示例

FBInstant.startGameAsync().then(function() {

  myGame.start();});

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在遊戲應該啟動時被解析。

 

shareAsync( )

此函式會呼叫一個對話方塊,讓使用者以下列方式分享指定的內容:在 Messenger 中傳送訊息,或在使用者時間線上釋出帖子。可以在分享中新增資料塊, 透過此次分享啟動的每個遊戲會話 都可以透過 FBInstant.getEntryPointData() 訪問此資料塊。轉變為字串時, 此資料必須小於或等於 1000 個字元。使用者 可以選擇取消分享操作和關閉對話方塊, 但無論使用者實際是否分享了內容, 返回的 promise 都將在對話方塊關閉時解析。

引數

· 

payload ,指定要分享的內容。詳情 請參閱示例。

· 

示例

FBInstant.shareAsync({

  intent: 'REQUEST',

  image: base64Picture,

  text: 'X is asking for your help!',

  data: { myReplayData: '...' },}).then(function() {

  // continue with the game.});

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise  此 promise 將在分享完成或取消時 被解析。

 

updateAsync( )

Facebook 通知遊戲內發生的更新。這會 暫時將控制權移交給 Facebook,且 Facebook 將確定要 根據更新內容採取什麼操作。返回的 promise 將在 Facebook 把 控制權返還給遊戲時解析/拒絕。

引數

· 

payload UpdatePayload  描述更新的負載。

· 

示例

// 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: 'Join The Fight',

  image: base64Picture,

  text: {

    default: 'X just invaded Y\'s village!',

    localizations: {

      ar_AR: 'X \u0641\u0642\u0637 \u063A\u0632\u062A ' +

      '\u0642\u0631\u064A\u0629 Y!',

      en_US: 'X just invaded Y\'s village!',

      es_LA: '\u00A1X acaba de invadir el pueblo de Y!',

    }

  }

  template: 'VILLAGE_INVASION',

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

  strategy: 'IMMEDIATE',

  notification: 'NO_PUSH',}).then(function() {

  // closes the game after the update is posted.

  FBInstant.quit();});

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise  此 promise 將在 Facebook 把控制權交還給遊戲時 被解析。

 

switchGameAsync( )

請求客戶端切換到另一個小遊戲。切換 失敗時, API 將拒絕,否則客戶端將載入 新遊戲。

引數

· 

appID 字串  要切換到的小遊戲相應的應用編號。 應用必須為小遊戲,且必須和當前遊戲 屬於同一商家所有。要將不同遊戲關聯到相同商家, 您可使用商務管理平臺: 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

 

quit( )

退出遊戲。

示例

FBInstant.quit();

返回   void

 

logEvent( )

透過 Facebook 分析記錄應用事件。請參閱  https://developers.facebook.com/docs/javascript/reference/v2.8#app_events  詳細瞭解 Fcaebook 分析。

引數

· 

eventName 字串  事件名稱。必須為 2 到 40 個字元, 且只能包含“_”、“-”、“ ”和字母數字字元。

· 

· 

valueToSum 數字  可選的數值,Facebook 分析利用此引數來 計算總和。

· 

· 

parameters 物件  可選的物件,最多可包含 25 個要與事件一同記錄的鍵值對。鍵必須為 2 到 40 個字元, 且只能包含“_”、“-”、“ ”和 字母數字字元。值的長度必須小於 100 個字元。

· 

示例

var logged = FBInstant.logEvent(

  'my_custom_event',

  42,

  {custom_property: 'custom_value'},);

返回    如果事件記錄錯誤,將返回錯誤; 否則返回 null。

 

onPause( )

設定發生暫停事件時將觸發的回撥。

引數

· 

func 函式  發生暫停事件時將呼叫的函式。

· 

示例

FBInstant.onPause(function() {

  console.log('Pause event was triggered!');})

返回   void

 

getInterstitialAdAsync( )

嘗試建立插屏廣告的例項。此例項可在之後 預載和顯示。

引數

· 

placementID 字串  在 Audience Network 設定中設定的 版位編號。

· 

示例

FBInstant.getInterstitialAdAsync(

  'my_placement_id',).then(function(interstitial) {

  interstitial.getPlacementID(); // 'my_placement_id'});

· 

丟擲   ADS_TOO_MANY_INSTANCES

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在獲得   時被解析;在獲得   時被拒絕 (如果未能建立)。

 

getRewardedVideoAsync( )

嘗試建立獎勵式影片廣告的例項。此例項可在之後 預載和顯示。

引數

· 

placementID 字串  在 Audience Network 設定中設定的 版位編號。

· 

示例

FBInstant.getRewardedVideoAsync(

  'my_placement_id',).then(function(rewardedVideo) {

  rewardedVideo.getPlacementID(); // 'my_placement_id'});

· 

丟擲   ADS_TOO_MANY_INSTANCES

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise  此 promise 將在獲得   時被解析;在獲得   時被拒絕 (如果未能建立)。

 

matchPlayerAsync( )

[封閉公測] 嘗試將當前玩家與等待他人加入遊戲的其他玩家 進行匹配。如果匹配成功,將為匹配的玩家建立 一個新的 Messenger 群聊,且玩家的遊戲環境將切換到 該群聊。

引數

· 

matchTag 字串  玩家的可選額外資訊,可用於將玩家 加到具有相似玩家的群聊中。具有完全相同標籤的玩家 才會加入同一群聊。標籤只能包含 字母、數字和下劃線,且長度不能超過 100 個 字元。

· 

· 

switchContextWhenMatched boolean  可選的額外引數, 指定當找到匹配時,是否將玩家 立即切換到新環境。預設設定為 false,亦即 玩家在匹配成功後,需要明確點選玩遊戲按鈕 才會切換到新環境。

· 

示例

FBInstant

  .matchPlayerAsync('level1')

  .then(function() {

    console.log(FBInstant.context.getID());

    // 12345

  });

FBInstant

  .matchPlayerAsync()

  .then(function() {

    console.log(FBInstant.context.getID());

    // 3456

  });

FBInstant

  .matchPlayerAsync(null, true)

  .then(function() {

    console.log(FBInstant.context.getID());

    // 3456

  });

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   USER_INPUT

· 

· 

丟擲   PENDING_REQUEST

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise  當玩家已加入群聊並切換到 群聊環境時,此 promise 被解析。

 

checkCanPlayerMatchAsync( )

[封閉公測] 檢查當前玩家是否符合 matchPlayerAsync API 的條件。

示例

FBInstant

  .checkCanPlayerMatchAsync()

  .then(canMatch => {

    if (canMatch) {

      FBInstant.matchPlayerAsync('level1');

    }

  });

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

返回   Promise < boolean >  當玩家符合與其他玩家匹配的條件時, 此 promise 被解析為 true,否則解析為 false。

 

getLeaderboardAsync( )

獲取這款小遊戲中的特有排行榜。

引數

· 

name 字串  排行榜的名稱。小遊戲的每個 排行榜必須具有唯一的名稱。

· 

示例

FBInstant.getLeaderboardAsync('my_awesome_leaderboard')

  .then(leaderboard => {

    console.log(leaderboard.getName()); // 'my_awesome_leaderboard'

  });

· 

丟擲   LEADERBOARD_NOT_FOUND

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   CLIENT_UNSUPPORTED_OPERATION

· 

· 

丟擲   INVALID_OPERATION

· 

· 

丟擲   INVALID_PARAM

· 

返回   Promise < >  此 promise 在獲得匹配的排行榜時被解析, 在未找到匹配時被拒絕。

 

LocalizationsDict

代表特定字串的語言設定與翻譯之間的對映。 每個屬性均為可選且包含五個字元的 Facebook 語言程式碼,格式為 xx_XX。 請參閱  https://origincache.facebook.com/developers/resources/?id=FacebookLocales.xml 獲取受支援的語言程式碼的完整列表。

型別: 物件

 

APIError

小遊戲 SDK 返回的 API 錯誤

 

code

相關的錯誤程式碼

型別:

 

message

描述錯誤的訊息

型別: 字串

 

ConnectedPlayer

代表與當前玩家關聯的玩家的資訊。

 

getID( )

獲取關聯玩家的編號。

返回 字串  關聯玩家的編號

 

getName( )

獲取玩家的全名。

返回 字串  即玩家的全名

 

getPhoto( )

獲取玩家公開頭像的網址。

返回 字串  玩家公開頭像的網址

 

SignedPlayerInfo

代表玩家資訊,幷包含簽名, 簽名用於驗證對應資訊確實來源於 Facebook。

 

getPlayerID( )

獲取玩家的編號。

示例

FBInstant.player.getSignedPlayerInfoAsync()

  .then(function (result) {

    result.getPlayerID(); // same value as FBInstant.player.getID()

  });

返回 字串  玩家的編號

 

getSignature( )

用於驗證此物件確實來源於 Facebook 的簽名。此字串 使用 base64url 編碼, 並根據 OAuth 2.0 協議使用 HMAC 版本的應用金鑰簽名。

您可以透過以下步驟進行驗證:

1.  將簽名分為兩個部分,以 “.”字元隔開。

2. 

對第一部分(編碼簽名)執行以下替換操作:

3. 

將短橫線 ('-') 替換為加號 ('+')

將下劃線 ('_') 替換為正斜槓 ('/')

4. 

使用 base64url 編碼對產生的字串解碼。

5. 

6. 

透過 base64url 編碼對第二部分(響應負載)進行解碼, 第二部分應該是代表 JSON 物件(包含下列欄位)的字串:

7. 

algorithm — 始終等於 HMAC-SHA256

issued_at — 發出此響應的 unix 時間戳。

player_id — 玩家的唯一標識。

request_payload — 呼叫 FBInstant.player.getSignedPlayerInfoAsync 時 指定的 requestPayload 字串。

8. 

請採用 HMAC SHA-256 和您的應用金鑰雜湊處理 整個響應負載字串,並確定它等同於經編碼的簽名。

9. 

10.  還建議您驗證響應負載中 issued_at 時間戳,確保請求是最近發出的。

應僅在您的伺服器中進行簽名驗證。  不要在客戶端進行簽名驗證, 因為客戶端可能會洩漏您的應用金鑰。

示例

//// In your game's client//FBInstant.player.getSignedPlayerInfoAsync('my_payload')

  .then(function (result) {

    MyServer.send(result.getSignature());

    // Example result.getSignature()

    // Eii6e636mz5J47sfqAYEK40jYAwoFqi3x5bxHkPG4Q4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTUwMDM5ODY3NSwicGxheWVyX2lkIjoiMTI0OTUyNTMwMTc1MjIwMSIsInJlcXVlc3RfcGF5bG9hZCI6Im15X2ZpcnN0X3JlcXVlc3QifQ

  });

//// In your server (node.js example)//const CryptoJS = require('crypto-js');var firstpart = signedRequest.split('.')[0];

firstpart = firstpart.replace(/-/g, '+').replace(/_/g, '/');const signature = CryptoJS.enc.Base64.parse(firstpart).toString();const dataHash = CryptoJS.HmacSHA256(signedRequest.split('.')[1], '<APP_SECRET>').toString();var isValid = signature === dataHash;

const json = crypto.enc.Base64.parse(signedRequest.split('.')[1]).toString(crypto.enc.Utf8);const encodedData = JSON.parse(json);

// Example encodedData:// {//   algorithm: 'HMAC-SHA256',//   issued_at: 1520009634,//   player_id: '123456789',//   request_payload: 'my_payload'//  }

返回 字串  簽名字串。

 

ContextPlayer

代表與當前玩家在相同環境中玩遊戲 的玩家的資訊。

 

getID( )

獲取相同環境玩家的編號。

返回 字串  相同環境玩家的編號

 

getName( )

獲取經本地化顯示的玩家姓名。

返回 字串  經本地化顯示的玩家姓名。

 

getPhoto( )

獲取玩家公開頭像的網址。

返回 字串  玩家公開頭像的網址

 

AdInstance

代表廣告例項。

 

getPlacementID( )

返回此廣告例項的 Audience Network 版位編號。

 

loadAsync( )

預載入廣告。返回的 promise 將在預載入完成時被解析, 在預載入失敗時被拒絕。

示例

FBInstant.getInterstitialAdAsync(

  'my_placement_id',).then(function(interstitial) {

  return interstitial.loadAsync();}).then(function() {

  // Ad loaded});

· 

丟擲   ADS_FREQUENT_LOAD

· 

· 

丟擲   ADS_NO_FILL

· 

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise

 

showAsync( )

代表廣告。返回的 promise 將在使用者 觀看完廣告時被解析,在廣告展示失敗或 使用者在廣告展示期間關閉廣告時被拒絕。

示例

var ad = null;FBInstant.getRewardedVideoAsync(

  'my_placement_id',).then(function(rewardedVideo) {

  ad = rewardedVideo;

  return ad.loadAsync();}).then(function() {

  // Ad loaded

  return ad.showAsync();}).then(function() {

  // Ad watched});

· 

丟擲   ADS_NOT_LOADED

· 

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise

 

排行榜

小遊戲排行榜

 

getName( )

排行榜的名稱。

示例

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    console.log(leaderboard.getName()); // my_leaderboard

  });

返回 字串

 

getContextID( )

與排行榜相關聯環境的編號,如果 排行榜未與特定環境關聯,則為 null。

示例

FBInstant.getLeaderboardAsync('contextual_leaderboard')

  .then(function(leaderboard) {

    console.log(leaderboard.getContextID()); // 12345678

  });

FBInstant.getLeaderboardAsync('global_leaderboard')

  .then(function(leaderboard) {

    console.log(leaderboard.getContextID()); // null

  });

返回 字串

 

getEntryCountAsync( )

獲取排行榜中玩家上榜分數的總數量。

示例

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    return leaderboard.getEntryCountAsync();

  })

  .then(function(count) { console.log(count); }); // 24

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise < 數字 >  玩家的唯一標識。

 

setScoreAsync( )

更新玩家的分數。如果玩家已有分數, 只有新分數更好時,才會替換舊分數。 注意:如果排行榜與特定環境關聯,遊戲必須處於 該環境,才能為玩家設定分數。

引數

· 

score 數字  玩家的新分數。必須為 64 位 整數。

· 

· 

extraData 字串 = ion。  與儲存的分數關聯的後設資料。 大小必須小於 2KB。

· 

示例

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    return leaderboard.setScoreAsync(42, '{race: "elf", level: 3}');

  })

  .then(function(entry) {

    console.log(entry.getScore()); // 42

    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'

  });

· 

丟擲   LEADERBOARD_WRONG_CONTEXT

· 

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   INVALID_PARAM

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise < >  解析為更新後玩家在排行榜的 當前上榜分數。

 

getPlayerEntryAsync( )

檢索當前玩家的排行榜上榜分數,或在玩家尚無 上榜分數時返回 null。

示例

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    return leaderboard.getPlayerEntryAsync();

  })

  .then(function(entry) {

    console.log(entry.getRank()); // 2

    console.log(entry.getScore()); // 42

    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'

  });

· 

丟擲   NETWORK_FAILURE

· 

· 

丟擲   INVALID_OPERATION

· 

返回   Promise < >?  解析為玩家在排行榜的 當前上榜分數。

 

getEntriesAsync( )

檢索一組排行榜上榜分數,按排行榜上的得分名次 排序。

引數

· 

count 數字  嘗試從排行榜獲取的上榜分數 總數量。如果未指定,預設為 10。每條查詢命令最多可獲取 100 個上榜分數。

· 

· 

offset 數字  從排行榜頂部檢索 上榜分數的偏移量。

· 

示例

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    return leaderboard.getEntriesAsync();

  })

  .then(function(entries) {

    console.log(entries.length); // 10

    console.log(entries[0].getRank()); // 1

    console.log(entries[0].getScore()); // 42

    console.log(entries[1].getRank()); // 2

    console.log(entries[1].getScore()); // 40

  });

FBInstant.getLeaderboardAsync('my_leaderboard')

  .then(function(leaderboard) {

    return leaderboard.getEntriesAsync(5, 3);

  })

  .then(function(entries) {

    console.log(entries.length); // 5

    console.log(entries[0].getRank()); // 4

    console.log(entries[0].getScore()); // 34

    console.log(entries[1].getRank()); // 5

    console.log(entries[1].getScore()); // 31

  });

· 

丟擲   NETWORK_FAILURE

· 

返回   Promise < 陣列 < >>  解析為與查詢條件相符的 排行榜上榜分數。

 

商品

表示遊戲的商品資訊。

型別: 物件

屬性

· 

title 字串  商品的標題

· 

· 

productID 字串  商品在遊戲中的特定標識

· 

· 

description 字串  商品說明

· 

· 

imageURI 字串  商品相關圖片的連結

· 

· 

price 字串  商品的價格

· 

· 

priceCurrencyCode 字串  商品的貨幣程式碼

· 

 

ContextFilter

適用於環境選擇操作的篩選條件。 “NEW_CONTEXT_ONLY”— 僅顯示之前玩遊戲未使用過的環境。 “INCLUDE_EXISTING_CHALLENGES”— 包括“當前挑戰”部分, 顯示玩家積極在其中玩遊戲的環境。 “NEW_PLAYERS_ONLY”— 在包含個人資訊的部分, 篩選出之前未玩過遊戲的使用者,

型別: ( "NEW_CONTEXT_ONLY"  |  "INCLUDE_EXISTING_CHALLENGES"  |  "NEW_PLAYERS_ONLY" )

 

購買

表示遊戲商品的單筆購買。

型別: 物件

屬性

· 

developerPayload 字串  開發者指定的字串, 在商品購買期間提供

· 

· 

paymentID 字串  購買交易的標識

· 

· 

productID 字串  商品在遊戲中的特定標識

· 

· 

purchaseTime 字串  購買發生時的 Unix 時間戳

· 

· 

purchaseToken 字串  代表該筆購買的一個口令, 可用來消費購買的商品

· 

· 

signedRequest  購買請求的伺服器 簽名程式碼

· 

 

平臺

代表使用者當前在哪個平臺玩遊戲。

型別: ( "IOS"  |  "ANDROID"  |  "WEB"  |  "MOBILE_WEB" )

 

ContextSizeResponse

如果當前環境的規模介於物件中 指定的 minSize 和 maxSize 值之間, answer 欄位為 true,否則為 false。

型別: {answer:  boolean , minSize:  number ?, maxSize:  number ?}

 

SharePayload

代表使用者分享的內容。

型別: 物件

屬性

· 

intent ( "INVITE"  |  "REQUEST"  |  "CHALLENGE"  |  "SHARE" )  表示分享的意圖。

· 

· 

image 字串  要分享的 base64 編碼圖片。

· 

· 

text 字串  要分享的文字訊息。

· 

· 

data 物件  要附加到分享中的資料塊。透過分享 開始的所有遊戲會話都可以透過 FBInstant.getEntryPointData() 訪問此資料塊。

· 

 

錯誤程式碼

小遊戲 API 可能會返回的錯誤程式碼

屬性

· 

ADS_FREQUENT_LOAD 字串  廣告載入太頻繁。

· 

· 

ADS_NO_FILL 字串  我們無法向當前的使用者投放 廣告。如果使用者在裝置中退訂基於興趣的廣告 ,或我們沒有廣告可展示給該使用者,就會出現這種情況

· 

· 

ADS_NOT_LOADED 字串  嘗試顯示此前未成功 載入的廣告。

· 

· 

ADS_TOO_MANY_INSTANCES 字串  同時展示的廣告例項 太多。建議您先載入和展示現有廣告例項,再新建廣告。

· 

· 

ANALYTICS_POST_EXCEPTION 字串  分析 API 在嘗試釋出事件 時遇到問題。

· 

· 

CLIENT_REQUIRES_UPDATE 字串  [已停用] — 客戶端要求獲得 更新,以便訪問返回此結果的功能。如果在網頁端 返回這一結果,則意味著該網頁客戶端還不支援 此功能。v5.0 及更高版本已停用這一程式碼,以便支援 CLIENT_UNSUPPORTED_OPERATION

· 

· 

CLIENT_UNSUPPORTED_OPERATION 字串  客戶端不支援 當前操作。這可能是因為客戶端版本或平臺不提供 相關支援,或不允許對遊戲或玩家執行此 操作。

· 

· 

INVALID_OPERATION 字串  所請求的操作無效, 或表示當前的遊戲狀態。這包括違反限制 (如超出儲存上限)或不適用於特定狀態 (如在獨立的環境中針對特定環境發出請求) 的情況。

· 

· 

INVALID_PARAM 字串  傳遞給 API 的引數 無效。可表示錯誤型別、引數的無效數字,或 語義問題(例如,將不可序列化的物件傳遞到 序列化函式)。

· 

· 

LEADERBOARD_NOT_FOUND 字串  找不到所請求名稱的 排行榜。這是因為排行榜尚不存在, 或其名稱與遊戲中登記的任何排行榜配置都不匹配。

· 

· 

LEADERBOARD_WRONG_CONTEXT 字串  嘗試寫入的排行榜 關聯了不同於當前玩遊戲環境的 其他環境。

· 

· 

NETWORK_FAILURE 字串  客戶端處理網路請求時 出現問題。這可能是由暫時性問題導致的, 如玩家的網路連線中斷。

· 

· 

PENDING_REQUEST 字串  表示因存在與此請求衝突的 一項請求而被拒絕。例如,當某個依賴於 Facebook 使用者介面的請求處於待處理狀態時, 我們就會拒絕顯示 Facebook 使用者介面的其他任何呼叫。

· 

· 

SAME_CONTEXT 字串  遊戲嘗試切換到 當前環境。

· 

· 

UNKNOWN 字串  發生了未知或未指定的問題。這是 客戶端未指定程式碼時返回的預設錯誤程式碼。

· 

· 

USER_INPUT 字串  使用者的選擇導致 被拒絕。例如,如果遊戲呼叫環境切換對話方塊, 而玩家關閉此對話方塊, 則 promise 拒絕中就會包含此錯誤程式碼。

· 

示例

FBInstant.startGameAsync().catch(function(e) {

  console.log(e);});// {code: 'CLIENT_UNSUPPORTED_OPERATION', message: '...'}

 

UpdateAction

表示要執行的更新操作型別。

屬性

· 

CUSTOM 字串  一項自定義更新,所有內容都由遊戲 指定。

· 

· 

LEADERBOARD 字串  與小遊戲排行榜相關的 一項更新。

· 

 

ErrorCodeType

小遊戲錯誤程式碼,  中的一種

型別: 字串

 

SignedPurchaseRequest

型別: 字串

示例

Eii6e636mz5J47sfqAYEK40jYAwoFqi3x5bxHkPG4Q4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTUwMDM5ODY3NSwicGxheWVyX2lkIjoiMTI0OTUyNTMwMTc1MjIwMSIsInJlcXVlc3RfcGF5bG9hZCI6Im15X2ZpcnN0X3JlcXVlc3QifQ

 

PurchaseConfig

註冊到遊戲的商品的購買請求配置。

型別: 物件

屬性

· 

productID 字串  要購買商品的標識

· 

· 

developerPayload 字串  由開發者指定的可選負載, 包含在所返回購買的簽名請求中。

· 

 

CustomUpdatePayload

代表 FBInstant.updateAsync 的自定義更新。

型別: 物件

屬性

· 

action  對於自定義更新,此屬性應為“CUSTOM”。

· 

· 

template 字串  此自定義更新所使用模板的編號。 模板應在 fbapp-config.json 中預定義。請參閱 [捆綁包配置文件] https://developers.facebook.com/docs/games/instant-games/bundle-config ,獲取有關 fbapp-config.json 的文件。

· 

· 

cta 字串 ?)  可選的行動號召按鈕 文字。預設情況下,我們會使用經本地化的“Play”作為按鈕文字。 若要提供自定義行動號召的本地化版本, 應傳遞一個包含預設行動號召的物件作為“default”值,以及將語言鍵對映到翻譯的 另一個物件作為“localizations”值。

· 

· 

image 字串  base64 編碼圖片的資料網址。

· 

· 

text 字串  |   一條文字訊息, 或者是一個包含預設文字作為“default”值的物件 以及另一個將語言鍵對映到翻譯內容作為“localizations”值的物件。

· 

· 

data 物件  要附加到更新中的資料塊。透過更新 開始的所有遊戲會話都可以透過 FBInstant.getEntryPointData() 訪問此資料塊。轉變為字串時, 此資料塊必須小於或等於 1000 個字元。

· 

· 

strategy 字串  指定更新的釋出 方式。可以是下列方式之一: “IMMEDIATE”— 更新應立即釋出。 “LAST”— 更新應在遊戲會話結束時釋出。使用 “LAST”策略傳送的是最近傳送的更新。 “IMMEDIATE_CLEAR”— 更新將立即釋出,並清除其他任何待處理的 更新(如透過“LAST”策略釋出的更新)。 如果未指定策略,我們將預設為“IMMEDIATE”。

· 

· 

notification 字串  指定自定義更新的 通知設定。可以是“NO_PUSH”或“PUSH”,預設為“NO_PUSH”。 僅將推送通知用於 對接收人來說非常顯著且可立即操作的更新。另請注意,並不一定 會傳送推送通知,具體取決於使用者設定和平臺政策。

· 

 

LeaderboardUpdatePayload

表示 FBInstant.updateAsync 的一項排行榜更新。

型別: 物件

屬性

· 

action  對於排行榜更新,此屬性應為 “LEADERBOARD”。 文字。預設情況下,我們會使用經本地化的“Play Now”作為按鈕文字。

· 

· 

name 字串  所更新排行榜的 名稱。

· 

· 

text 字串  可選的文字訊息。如果未指定,將會提供 一條經本地化的回退訊息。

· 

 

LocalizableContent

代表一個字串,其中包含最終使用的本地化內容和預設值。

型別: 物件

屬性

· 

default 字串  要使用的字串的預設值 (檢視者的語言設定不是 localizations 物件中的鍵時)。

· 

· 

localizations  指定每種語言設定中用於觀看者 的字串。 請參閱  https://origincache.facebook.com/developers/resources/?id=FacebookLocales.xml 獲取受支援的語言值的完整列表。

· 

 

LeaderboardEntry

小遊戲排行榜上的一個上榜分數

 

getScore( )

獲取上榜分數的分值。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getScore()); // 9001

  });

返回 數字  返回整數的分數。

 

getFormattedScore( )

獲取與上榜分數相關的分值,採用 與排行榜相同的分值格式。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getFormattedScore()); // '90.01 meters'

  });

返回 字串  返回有格式的分數。

 

getTimestamp( )

獲取排行榜上榜分數的上次更新時間戳。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getTimestamp()); // 1515806355

  });

返回 數字  返回 Unix 時間戳。

 

getRank( )

獲取玩家分數在排行榜中的排行。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getRank()); // 2

  });

返回 數字  返回上榜分數在排行榜的排行。

 

getExtraData( )

獲取與分數相關的開發者指定負載, 或在沒有設定時返回 null。

示例

leaderboard.setScoreAsync(42, '{race: "elf", level: 3}');

  .then(function(entry) {

    console.log(entry.getExtraData()); // '{race: "elf", level: 3}'

  });

返回 字串  與分數相關的開發者指定負載,為可選 引數。

 

getPlayer( )

獲取與上榜分數相關玩家的資訊。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getPlayer().getName()); // Sally

  });

返回  

 

LeaderboardPlayer

與上榜分數相關玩家的詳情。

 

getName( )

獲取經本地化顯示的玩家姓名。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getPlayer().getName()); // Sally

  });

返回 字串  經本地化顯示的玩家姓名。

 

getPhoto( )

返回玩家公開頭像的網址。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getPlayer().getPhoto()); // <photo_url>

  });

返回 字串  玩家公開頭像的網址。

 

getID( )

獲取玩家在遊戲中的唯一標識。

示例

leaderboard.setScoreAsync(9001)

  .then(function(entry) {

    console.log(entry.getPlayer().getID()); // 12345678

  });

返回 字串  玩家在遊戲中的標識。


為方便大家群策群力, 建立了一個 Facebook Instant Game   交流群: 814298516 歡迎同 們加入 交流開發和運營經驗。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31548548/viewspace-2199221/,如需轉載,請註明出處,否則將追究法律責任。

相關文章