【发布时间】:2014-06-07 18:36:07
【问题描述】:
我试图让用户点击按钮时出现一个 FB.ui 对话框。现在,我可以让对话框显示为弹出窗口,但我不希望这样。我希望对话框显示为模式,以便弹出窗口阻止程序不会阻止它。我曾尝试使用“display: 'iframe'”参数,但使用时出现错误:
“对话”模式只能在用户连接时使用。
我已经读过,也许我需要使用访问令牌来使其显示为模式并使用显示 iframe 参数。请记住,这是针对网站的。
我已经在服务器端 (PHP) 的 Laravel 中有一个 OAuth2 包,它负责对 Facebook 用户进行身份验证,并提取访问令牌。我的问题是,如何提取此令牌并将其应用到 Javascript SDK,以便我可以让 FB.ui 对话框显示为模式?我什至需要这样做吗?这是我正在使用的javascript:
window.fbAsyncInit = function () {
FB.init({ appId: '************', cookie: true, status: true, xfbml: true, oauth: true });
if (typeof facebookInit == 'function') {
facebookInit();
}
};
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
function facebookInit() {
FB.ui({
url : 'http://url.com',
method: 'feed',
name: 'Url',
link: url,
display: 'iframe',
picture: 'http://thisimage.png',
caption: fb_description,
}, function (response) {
if (response && response.post_id) {
window.location = "/artists";
} else {
window.location = "/artists";
}
});
}
【问题讨论】:
标签: javascript php facebook facebook-graph-api facebook-javascript-sdk