Facebook の Javascript API ( FBMLPopupDialogを使用)を使用して、ページ内に友達招待ダイアログを表示する Facebook Connect アプリケーションを作成しようとしています。
問題は、あなたが使用する友人招待ダイアログを表示することですユーザーがフォームを完了またはスキップしたときにページをリダイレクトする URL を表す action="url" 属性を必要とするマルチフレンド フォーム。問題は、FBMLPopupDialog (ユーザーがポップアップ ダイアログの [X] ボタンを押した場合と同じ動作) を閉じたいことです。私ができる最善の方法は、ユーザーを基本的にリロードしていたページにリダイレクトすることですが、AJAX/Flash アプリケーションの状態はすべて失われます。
Facebook Connect 開発者がこの問題に遭遇し、ユーザーが終了したときに「更新」または「リダイレクト」したくない、Web サイト内に友人招待の「ライトボックス」ダイアログを表示するだけの良い方法があるかどうか疑問に思っています。 .
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:");
}
);
}
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;
}