我正在尝试创建一个Facebook Connect应用程序,它使用Facebook的
Javascript API(通过
FBMLPopupDialog)在页面中显示一个朋友邀请对话框.
麻烦的是显示一个朋友邀请对话框,使用一个的多人表单,需要一个action =“url”属性,该属性表示URL用于将页面重定向到用户完成或跳过表单时.问题是我想关闭FBMLPopupDialog(与用户刚刚点击弹出对话框上的’X’按钮相同的行为).我可以做的最好的方法是将用户重定向到他们基本上重新加载的页面,但是它们失去了所有的AJAX / Flash应用程序状态.
我想知道是否有任何Facebook Connect开发人员遇到这个问题,并且有一个很好的方法来简单地在他们的网站中显示一个朋友邀请“lightBox”对话框,他们不想在用户完成时“刷新”或“重定向” .
facebook连接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:"); } ); } function fb_getInviteFBML() { var uid = FB.Facebook.apiClient.get_session().uid; var fbml = ""; fbml = '<fb:fbml>\n' + '<fb:request-form\n'+ //Redirect back to this page ' action="'+ document.location +'"\n'+ ' method="POST"\n'+ ' invite="true"\n'+ ' type="Weblings Invite"\n' + ' content="I need your help to discover all the Weblings and save the Internet! WebWars: Weblings is a cool new game where we can collect fantastic creatures while surfing our favorite websites. Come find the missing Weblings with me!'+ //Callback the server with the appropriate Webwars Account URL ' <fb:req-choice url=\''+ WebwarsFB.WebwarsAccountServer +'/SplashPage.aspx?action=ref&reftype=Facebook' label=\'Check out WebWars: Weblings\' />"\n'+ '>\n'+ ' <fb:multi-friend-selector\n'+ ' rows="2"\n'+ ' cols="4"\n'+ ' bypass="Cancel"\n'+ ' showborder="false"\n'+ ' actiontext="Use this form to invite your friends to connect with WebWars: Weblings."/>\n'+ ' </fb:request-form>'+ ' </fb:fbml>'; return fbml; }
解决方法
如果有人在2011年会找到这样的东西,那么链接:
http://developers.facebook.com/docs/reference/dialogs/requests/,您需要发送应用程序请求的代码是:
FB.ui({method: 'apprequests',message: 'A request especially for one person.',data: 'tracking information for the user'});