我正在尝试在聊天上下文中调用 FBInstant.updateAsync()(id=THREAD)。它成功解决,但不要在聊天中发布任何消息。有谁知道为什么会这样?
问题已修复,工作代码:
FBInstant.updateAsync({
action: 'CUSTOM',
//cta: 'Join The Fight',
image: 'data:image/jpeg;base64,/...',
text: 'X just invaded Y\'s village!',
template: 'test_template',
data: { myReplayData: '...' },
strategy: 'IMMEDIATE',
notification: 'NO_PUSH',
}).then(
() =>{
console.log('updateAsync() success!' + JSON.stringify(data));
FBInstant.quit();
},
error => {
console.error('updateAsync() ERROR! ' + JSON.stringify(error));
}
);
这是我的 fbapp-config.json:
{
"instant_games": {
"platform_version": "RICH_GAMEPLAY",
"custom_update_templates": {
"test_template": {
"example": "X just invaded Y's village!"
}
}
}
}
最佳答案
首先,我的印象是你应该在图像字段中有一个 base64 编码的图像,而不是一个 base64 编码的 URL。您可以尝试使用 https://www.base64-image.de 使用 base64 对图像进行编码。也许您的更新实际上因此而失败!
其次,对于 getEntryPointData() 返回数据,您必须通过自定义更新进入游戏,它将返回使用 updateAsync 设置的数据。当用户通过更新进入游戏时,他们不会进入 .then(),就像您的代码似乎尝试做的那样。
如果将图像更改为编码图像不能修复 updateAsync,您可以尝试通过 chrome 检查器进行调试并设置“在未捕获的异常时暂停”切换,并查看 updateAsync 期间是否发生崩溃
关于facebook-instant-games - FBInstant.updateAsync() 解析成功但什么都不做,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49036966/