您好,登錄后才能下訂單哦!
1. 廣告 API 兩款全新的 API 可方便投放插屏廣告和獎勵式視頻廣告。要求 配置游戲以便在小游戲中投放廣告。
2. Player Stats API,用于設置、獲取并自動增加與玩家相關的 整數統計數據。輔以捆綁包配置的新增內容, 可為玩家統計數據配置元數據, 通過 Facebook 平臺級集成顯示統計數據。
3. getEntryPointAsync API,獲取啟動游戲的入口點。
4. Custom Update Dev Localization 自定義更新 API 的增補, 讓開發者能夠提供更新內容的本地化版本。
5. 重大更改 將 CLIENT_REQUIRES_UPDATE 更名為 CLIENT_UNSUPPORTED_OPERATION
小游戲 SDK 的頂級命名空間。
包含與當前玩家相關的功能和屬性。
玩家的唯一標識。 Facebook 用戶的玩家編號 將保持不變,且僅限于特定游戲范圍。這意味著 同一個用戶在不同的游戲中有不同的玩家編號。 僅當 FBInstant.initializeAsync() 被解析后才應調用此 函數。
示例
// This function should be called after FBInstant.initializeAsync()// resolves.var playerID = FBInstant.player.getID();
返回 字符串 ? 玩家的唯一標識。
獲取玩家的唯一標識和簽名,簽名用于驗證標識確實 來自 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 < SignedPlayerInfo > 以 #signedplayerinfo 對象解析的 promise。
經本地化顯示的玩家姓名。僅當 FBInstant.startGameAsync() 被解析后 才應調用此函數。
示例
// This function should be called after FBInstant.startGameAsync()// resolves.var playerName = FBInstant.player.getName();
返回 字符串 ? 經本地化顯示的玩家姓名。
玩家公開頭像的網址。此照片始終為正方形, 尺寸至少為 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();
返回 字符串 ? 玩家公開頭像的網址。
從指定的云存儲中檢索當前玩家的數據。
參數
·
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 將在獲得 包含下列信息的對象時被解析:輸入數組中指定的每個鍵的 當前鍵值對(如存在)。
設置要保存到指定云存儲的當前玩家 的數據。對于每個獨立玩家,游戲最多可存儲 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 中使用。
立即將玩家數據的任何更改刷新到指定的 云存儲中。此函數的調用成本較高, 應主要用于需要立即存儲并告知游戲的 重要更改。非重要更改應依賴于開放平臺在后臺 進行存儲。 注意:當此函數的結果待定時, 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 將在更改保存成功時被解析, 在更改保存失敗時被拒絕。
從指定云存儲檢索當前玩家的統計數據。
參數
·
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 將在獲得 包含下列信息的對象時被解析:輸入數組中指定的每個鍵的 當前鍵值對(如存在)。
設置要保存到指定云存儲的當前玩家 的統計數據。
參數
·
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 中使用。
保存到指定云存儲的當前玩家 的增量統計數據。
參數
·
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 中使用。
提取 ConnectedPlayer 對象的數組,這些對象包含與當前玩家 關聯的玩家的信息。
注意:只有當 FBInstant.startGameAsync() 被解析時,此 promise 才會解析。
示例
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 < 數組 < ConnectedPlayer >> 此 promise 將在 獲得關聯玩家對象列表時被解析。
包含與當前游戲環境相關的功能和屬性。
當前游戲環境的唯一標識。這表示 玩游戲的特定環境(例如:特定的 Messenger 對話或 Facebook 帖子)。如果用戶在獨立環境中玩游戲,則此標識將 為 null。僅當 FBInstant.startGameAsync 被解析后 才應調用此函數。
示例
// This function should be called after FBInstant.startGameAsync()// resolves.var contextID = FBInstant.context.getID();
返回 字符串 ? 當前游戲環境的唯一標識。
當前游戲環境的類型。
僅當 FBInstant.startGameAsync 被解析后才應調用此函數。
示例
// This function should be called after FBInstant.startGameAsync()// resolves.var contextType = FBInstant.context.getType();
返回 ( "POST" | "THREAD" | "GROUP" | "SOLO" ) 當前游戲環境的類型。
此函數用于確定加入當前游戲環境的玩家 數量是否在給定的最小值和最大值之間(包括最小值和最大值)。僅當其中一個邊界值為 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
返回 ContextSizeResponse ?
請求切換到指定環境。如果玩家沒有進入該環境的權限, 或玩家未向游戲提供進入 該環境的權限,請求將被拒絕。 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 將在游戲切換到指定環境時被解析, 在切換失敗時被拒絕。
為玩家打開一個環境選擇對話框。如果玩家選擇可用的環境, 客戶端將嘗試切換到這個環境, 并在成功時解析。而如果玩家退出菜單或 客戶端未能切換到新環境,此函數 將被拒絕。
參數
·
options 對象 ? 此對象用于指定應提供 的環境選項。
·
·
options.filters 數組 < ContextFilter >? 適用于環境推薦的一組篩選條件 。
·
·
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 將被拒絕 (例如用戶退出對話框)。
嘗試在指定玩家和當前玩家之間創建環境或 切換環境。如果列出的玩家不是當前玩家的關聯玩家, 或玩家未提供進入新環境的權限, 則返回的 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 將在游戲切換到新環境時被解析, 在切換失敗時被拒絕。
獲取 #contextplayer 對象的數組, 其中包含與當前環境相關的活躍玩家 (在過去 90 天內玩過游戲的用戶)的信息。這可能包含當前 玩家。
注意:只有當 FBInstant.startGameAsync() 被解析時,此 promise 才會解析。
示例
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 < 數組 < ContextPlayer >>
當前的語言設置。根據這一結果確定當前的游戲應本地化 為哪種語言。在 FBInstant.startGameAsync() 被解析之前,對應的值將不準確。
示例
// This function should be called after FBInstant.startGameAsync()// resolves.var locale = FBInstant.getLocale(); // 'en_US'
返回 字符串 ? 當前的語言設置。
當前運行游戲的平臺。對應的值將始終為 null, 直至 FBInstant.initializeAsync() 被解析。
示例
// This function should be called after FBInstant.initializeAsync()// resolves.var platform = FBInstant.getPlatform(); // 'IOS'
返回 平臺 ?
表示此 SDK 版本的字符串。
示例
// This function should be called after FBInstant.initializeAsync()// resolves.var sdkVersion = FBInstant.getSDKVersion(); // '2.0'
返回 字符串 SDK 版本。
初始化 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 可以使用時被解析。
報告游戲的初始加載進度。
參數
·
percentage 數字 介于 0 和 100 之間的數字。
·
示例
FBInstant.setLoadingProgress(50); // Assets are 50% loaded
返回 void
提供客戶端支持的 API 函數的列表。
示例
// This function should be called after FBInstant.initializeAsync()// resolves.FBInstant.getSupportedAPIs();// ['getLocale', 'initializeAsync', 'player.getID', 'context.getType', ...]
返回 數組 < 字符串 > 客戶端顯式支持的 API 函數 列表。
返回與啟動游戲的入口點相關的任何數據 對象。
對象內容由開發者定義,可通過不同平臺 的入口點觸發。對于較舊版本的移動客戶端, 以及沒有與特定入口點相關的數據時, 此函數會返回 null。
僅當 FBInstant.startGameAsync() 被解析后 才應調用此函數。
示例
// This function should be called after FBInstant.initializeAsync()// resolves.const entryPointData = FBInstant.getEntryPointData();
返回 對象 ? 與當前入口點相關的數據。
返回啟動游戲的入口點
示例
// This function should be called after FBInstant.initializeAsync()// resolves.FBInstant.getEntryPointAsync().then(entrypoint => console.log(entrypoint));// 'admin_message'
返回 字符串 用戶啟動游戲時所在的入口點的 名稱
為當前環境設置與單個游戲會話相關的 數據。
當游戲需要更新當前的會話數據時, 應調用此函數。此會話數據可用于填充各種負載, 如玩游戲 webhook。
參數
·
sessionData 對象 一個隨機數據對象,轉變為字符串后,必須小于 或等于 1000 個字符。
·
示例
FBInstant.setSessionData({coinsEarned: 10, eventsSeen: ['start', ...]});
返回 void
表示游戲已完成初始加載, 并準備就緒可以開始游戲。當返回的 promise 被解析時, 環境信息即為最新。
示例
FBInstant.startGameAsync().then(function() {
myGame.start();});
·
拋出 INVALID_PARAM
·
·
拋出 CLIENT_UNSUPPORTED_OPERATION
·
返回 Promise 此 promise 將在游戲應該啟動時被解析。
此函數會調用一個對話框,讓用戶以下列方式分享指定的內容:在 Messenger 中發送消息,或在用戶時間線上發布帖子。可以在分享中添加數據塊, 通過此次分享啟動的每個游戲會話 都可以通過 FBInstant.getEntryPointData() 訪問此數據塊。轉變為字符串時, 此數據必須小于或等于 1000 個字符。用戶 可以選擇取消分享操作和關閉對話框, 但無論用戶實際是否分享了內容, 返回的 promise 都將在對話框關閉時解析。
參數
·
payload SharePayload ,指定要分享的內容。詳情 請參閱示例。
·
示例
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 將在分享完成或取消時 被解析。
向 Facebook 通知游戲內發生的更新。這會 暫時將控制權移交給 Facebook,且 Facebook 將確定要 根據更新內容采取什么操作。返回的 promise 將在 Facebook 把 控制權返還給游戲時解析/拒絕。
參數
·
payload CustomUpdatePayload 描述更新的負載。
·
示例
// 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
·
返回 Promise 此 promise 將在 Facebook 把控制權交還給游戲時 被解析。
退出游戲。
示例
FBInstant.quit();
返回 void
通過 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'},);
返回 APIError ? 如果事件記錄錯誤,將返回錯誤; 否則返回 null。
設置發生暫停事件時將觸發的回調。
參數
·
func 函數 發生暫停事件時將調用的函數。
·
返回 void
嘗試創建插屏廣告的實例。此實例可在之后 預載和顯示。
參數
·
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 將在獲得 #adinstance 時被解析;在獲得 #apierror 時被拒絕 (如果未能創建)。
嘗試創建獎勵式視頻廣告的實例。此實例可在之后 預載和顯示。
參數
·
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 將在獲得 #adinstance 時被解析;在獲得 #apierror 時被拒絕 (如果未能創建)。
代表特定字符串的語言設置與翻譯之間的映射。 每個屬性均為可選且包含五個字符的 Facebook 語言代碼,格式為 xx_XX。 請參閱 https://www.facebook.com/translations/FacebookLocales.xml , 獲取受支持的語言代碼的完整列表。
類型: 對象
小游戲 SDK 返回的 API 錯誤
相關的錯誤代碼
類型: ErrorCodeType
描述錯誤的消息
類型: 字符串
代表玩家信息,并包含簽名, 簽名用于驗證對應信息確實來源于 Facebook。
獲取玩家的編號。
返回 字符串 玩家的編號
用于驗證此對象確實來源于 Facebook 的簽名。此字符串 使用 base64url 編碼, 并根據 OAuth 2.0 協議使用 HMAC 版本的應用密鑰簽名。
您可以通過以下 4 步進行驗證:
·
將簽名分為兩個部分,以 “.”字符隔開。
·
·
通過 base64url 編碼對第一部分(編碼后的簽名)進行解碼。
·
·
通過 base64url 編碼對第二部分(響應負載)進行解碼, 第二部分應該是代表 JSON 對象(包含下列字段)的字符串: ** algorithm — 始終等于 HMAC-SHA256。 ** issued_at — 發出此響應的 unix 時間戳。 ** player_id — 玩家的唯一標識。 ** request_payload — 您在調用 FBInstant.player.getSignedPlayerInfoAsync 時 指定的 requestPayload 字符串。
·
·
請采用 HMAC SHA-256 和您的應用密鑰散列處理 整個響應負載字符串,并確定它等同于經編碼的簽名。
·
·
還建議您驗證響應負載中 的 issued_at 時間戳,確保請求是最近發出的。
·
應僅在您的服務器中進行簽名驗證。不要在客戶端進行簽名驗證, 因為客戶端可能會泄漏您的應用密鑰。
示例
Eii6e636mz5J47sfqAYEK40jYAwoFqi3x5bxHkPG4Q4.eyJhbGdvcml0aG0iOiJITUFDLVNIQTI1NiIsImlzc3VlZF9hdCI6MTUwMDM5ODY3NSwicGxheWVyX2lkIjoiMTI0OTUyNTMwMTc1MjIwMSIsInJlcXVlc3RfcGF5bG9hZCI6Im15X2ZpcnN0X3JlcXVlc3QifQ
返回 字符串 簽名字符串。
代表與當前玩家關聯的玩家的信息。
獲取關聯玩家的編號。
返回 字符串 關聯玩家的編號
獲取玩家的全名。
返回 字符串 ? 即玩家的全名
獲取玩家公開頭像的網址。
返回 字符串 ? 玩家公開頭像的網址
代表與當前玩家在相同環境中玩游戲 的玩家的信息。
獲取相同環境玩家的編號。
返回 字符串 相同環境玩家的編號
獲取經本地化顯示的玩家姓名。
返回 字符串 ? 經本地化顯示的玩家姓名。
獲取玩家公開頭像的網址。
返回 字符串 ? 玩家公開頭像的網址
代表廣告實例。
返回此廣告實例的 Audience Network 版位編號。
預加載廣告。返回的 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
代表廣告。返回的 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
適用于環境選擇操作的篩選條件。 “NEW_CONTEXT_ONLY”— 僅顯示之前玩游戲未使用過的環境。 “INCLUDE_EXISTING_CHALLENGES”— 包括“當前挑戰”部分, 顯示玩家積極在其中玩游戲的環境。 “NEW_PLAYERS_ONLY”— 在包含個人信息的部分, 篩選出之前未玩過游戲的用戶,
類型: ( "NEW_CONTEXT_ONLY" | "INCLUDE_EXISTING_CHALLENGES" | "NEW_PLAYERS_ONLY" )
代表用戶當前在哪個平臺玩游戲。
類型: ( "IOS" | "ANDROID" | "WEB" | "MOBILE_WEB" )
如果當前環境的規模介于對象中 指定的 minSize 和 maxSize 值之間, answer 字段為 true,否則為 false。
類型: {answer: boolean , minSize: number ?, maxSize: number ?}
代表用戶分享的內容。
類型: 對象
屬性
·
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 的參數 無效。可表示錯誤類型、參數的無效數字,或 語義問題(例如,將不可序列化的對象傳遞到 序列化函數)。
·
·
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: '...'}
小游戲錯誤代碼, #errorcode 中的一種
類型: 字符串
代表 FBInstant.updateAsync 的自定義更新。
類型: 對象
屬性
·
action 字符串 對于自定義更新,此屬性應為“CUSTOM”。
·
·
template 字符串 此自定義更新所使用模板的編號。 模板應在 fbapp-config.json 中預定義。請參閱 [捆綁包配置文檔] https://developers.facebook.com/docs/games/instant-games/bundle-config ,獲取有關 fbapp-config.json 的文檔。
·
·
cta ( 字符串 ? | LocalizableContent ?) 可選的行動號召按鈕 文本。默認情況下,我們會使用經本地化的“Play”作為按鈕文本。 若要提供自定義行動號召的本地化版本, 應傳遞一個包含默認行動號召的對象作為“default”值,以及將語言鍵映射到翻譯的 另一個對象作為“localizations”值。
·
·
image 字符串 base64 編碼圖片的數據網址。
·
·
text ( 字符串 | LocalizableContent ) 一條文本消息, 或者是一個包含默認文本作為“default”值的對象 以及另一個將語言鍵映射到翻譯內容作為“localizations”值的對象。
·
·
data 對象 ? 要附加到更新中的數據塊。通過更新 開始的所有游戲會話都可以通過 FBInstant.getEntryPointData() 訪問此數據塊。轉變為字符串時, 此數據塊必須小于或等于 1000 個字符。
·
·
strategy 字符串 ? 指定更新的發布 方式。可以是下列方式之一: “IMMEDIATE”— 更新應立即發布。 “LAST”— 更新應在游戲會話結束時發布。使用 “LAST”策略發送的是最近發送的更新。 “IMMEDIATE_CLEAR”— 更新將立即發布,并清除其他任何待處理的 更新(如通過“LAST”策略發布的更新)。 如果未指定策略,我們將默認為“IMMEDIATE”。
·
·
notification 字符串 ? 指定自定義更新的 通知設置。可以是“NO_PUSH”或“PUSH”,默認為“NO_PUSH”。 僅將推送通知用于 對接收人來說非常顯著且可立即操作的更新。另請注意,并不一定 會發送推送通知,具體取決于用戶設置和平臺政策。
·
代表一個字符串,其中包含最終使用的本地化內容和默認值。
類型: 對象
屬性
·
default 字符串 要使用的字符串的默認值 (查看者的語言設置不是 localizations 對象中的鍵時)。
·
·
localizations LocalizationsDict 指定每種語言設置中用于觀看者 的字符串。 請參閱 https://www.facebook.com/translations/FacebookLocales.xml , 獲取受支持的完整語言列表。
為方便大家群策群力, 我 們 創建了一個 Facebook Instant Game 交流群: 814298516 。 歡迎同 學 們加入 交流開發和運營經驗。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。