我正在尝试创建一个Facebook Connect应用程序,使用Facebook的Javascript API(通过FBMLPopupDialog)在页面中显示朋友邀请对话框.
问题是显示您使用的朋友邀请对话框 多朋友表单,需要action ="url"属性,该属性表示在用户完成或跳过表单时将页面重定向到的URL.问题是我想关闭FBMLPopupDialog(就像用户只是点击弹出对话框中的'X'按钮一样).我能做的最好的事情是将用户重定向回他们所在的页面基本上是重新加载,但是他们失去了所有AJAX/Flash应用程序状态.
我想知道是否有任何Facebook Connect开发人员遇到这个问题并且有一个很好的方法来简单地在他们的网站中显示朋友邀请"灯箱"对话框,他们不想在用户完成时"刷新"或"重定向" .
facebook connect JS API提供了一个FB.Connect.inviteConnectUsers,它提供了一个很好的对话框,但只连接了你的应用程序的现有用户,这些用户也有一个Facebook帐户但没有连接.
http://bugs.developers.facebook.com/show_bug.cgi?id=4916
function fb_inviteFriends() {
//Invite users
log("Inviting users...");
FB.Connect.requireSession(
function() { //Connect succes
var uid = FB.Facebook.apiClient.get_session().uid;
log('FB CONNECT SUCCESS: ' + uid);
//Invite users
log("Inviting users...");
//Update server with connected account
updateAccountFacebookUID();
var fbml = fb_getInviteFBML() ;
var dialog = new FB.UI. FBMLPopupDialog("Weblings Invite", fbml) ;
//dialog.setFBMLContent(fbml);
dialog.setContentWidth(650);
dialog.setContentHeight(450);
dialog.show();
},
//Connect cancelled
function() {
//User cancelled the connect
log("FB Connect cancelled:"); …Run Code Online (Sandbox Code Playgroud) 初始化代码:
window.fbAsyncInit = function() {
var bheight = $(document).height() + 50;
FB.init({
appId: appid,
frictionlessRequests : true,
status: true,
cookie: true,
xfbml: true,
oauth: true});
FB.Canvas.setSize({ width:760,height:bheight });
};
// Load the SDK Asynchronously
(function(d){
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
Run Code Online (Sandbox Code Playgroud)
使用onclick调用以下代码:
function sendRequestViaMultiFriendSelector(msg){
FB.ui({
method: 'apprequests',
message: msg
});
}
Run Code Online (Sandbox Code Playgroud)
弹出窗口显示,用户可以选择一些朋友,但在提交或取消后,窗口变为空白.弹出窗口仍然存在但是空白.Firebug中没有记录错误.
如果我添加一个回调函数,它永远不会到达.
我已经尝试添加一个自我关闭redirect_uri(redirect_uri:' http://.../self_close.html '),但在提交弹出重定向到self_close.html后,甚至当该html的内容只是 <script type="text/javascript">window.close(); </script>弹出窗口赢了'关闭也不会将请求发送给选定的朋友. …
facebook facebook-javascript-sdk facebook-apps fb.ui apprequests