如何让Facebookloginbuttonredirect到一个特定的URL
这是Facebookloginbutton上的信息
http://developers.facebook.com/docs/guides/web/
因此,它会呈现一个loginbutton,用户可以点击它loginFacebook(会popup一个login窗口)但是在用户login后,即使Like或Sharebutton现在工作,但loginbutton仍然显示。
1)用户成功login后,是否有办法redirect到URL?
2)另一种方法是dynamic地将loginbutton更改为不可见或更好,将其显示为“以[Peter(username)]login”
(1)和/或(2)如何完成? (我在Facebook应用程序设置中看不到callbackURL,而且redirect可能需要从网页A或页面B的不同URL得到)
更新:我发现一些关于<fb:login-button on-login="top.location = '...'; ">
但我看到一些网站做redirect,但没有on-login='...'
1)你也可以使用这样的代码redirectlogin(注意auth.login
事件):
<script src="http://connect.facebook.net/en_US/all.js"> </script> <script> FB.init({ appId: '??????????????', cookie: true, status: true, xfbml: true }); FB.Event.subscribe('auth.login', function () { window.location = "http://example.com"; }); </script> <fb:login-button> Login with Facebook </fb:login-button>
2)要确定是否显示或隐藏loginbutton,可以使用FB.getLoginStatus
来发现用户是否已login。以下页面可能有用: http : //developers.facebook.com/docs/reference/的JavaScript / FB.getLoginStatus /
FBML选项:这应该给你你想要的function(在FB.init
使用xfbml:true
):
<fb:login-button autologoutlink="true" onlogin="OnRequestPermission();"> </fb:login-button>
当用户login时,它将更改为“注销”。 另外,如果用户没有授予应用程序权限,则会popup请求权限对话框。
自定义选项:如果您不喜欢使用FBML,您可以创build自己的Facebookloginbutton,如下所示:
HTML:
<button id="THE_BUTTON">Login</button>
使用Javascript:
FB.init({appId: 'YourAPPID', status: true, cookie: true, xfbml: true, oauth : true}); FB.getLoginStatus(function(response) { if (response.status.toString().indexOf("connected")>-1) { initAll(); //User is connected and granted permissions FB.api("/me", function (response) { document.getElementbyId("THE_BUTTON").value = "Logged in as " + response.name; }); } else { // This URL is specially formed to ask permissions for your app. You change the // permissions and your appID //redirect_uri = Change this to your desired callback URL top.location=window.location="http://www.facebook.com/dialog/oauth/?scope=read_stream,publish_stream,friends_photos,friends_activities&client_id="yourAPPID(nobrackets)"&redirect_uri=http://apps.facebook.com/filtered_feed/&response_type=code"; } });
因此,如果用户login,该button将被replace为“以用户名login”。 否则,OAuth对话框将会出现。