我正在尝试在网站上显示 iFrame 模式对话框,以便用户可以在 Facebook 墙上发布内容。
我不断收到可怕的 102 错误: session key 无效或不再有效...必须使用 session key 调用 Iframe 对话框
。
我发现了各种questions and answers对于同样的问题,但解决方案都涉及获取用户的访问 key 或使用服务器端 SDK。
我不需要验证用户身份或访问他们的任何信息。我正在使用 JavaScript SDK(没有服务器端)。
我只想打开模式并让他们发布。这只是一个网站,而不是应用程序。
是否可以修改我的代码以允许通过 iFrame 进行发布,而无需在我的网站上对用户进行身份验证、请求用户权限或调用服务器端的任何内容?
$('#button').on('click', function() {
FB.init({
appId: '12345',
status: true,
cookie: true,
xfbml: false
});
FB.ui({
method: 'feed',
name: 'Post Name',
link: 'http://www.foosite.com',
picture: 'http://foosite.com/img/img.jpg',
caption: 'Caption for Picture',
description: 'Description for Post',
display: 'iframe'
},
function(response) {
if (response && response.post_id) {
console.log('Post was published');
} else {
console.log('Post was not published');
}
);
});
最佳答案
Facebook 不允许使用 iframe 进行对话,除非用户已经授权该应用程序。这是为了降低点击劫持的风险。
一般情况下不需要指定显示参数,JS SDK会根据应用是否授权来选择最合适的显示参数。
关于javascript - Facebook iFrame JavaScript SDK - 不带 OAuth,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20811124/