Как получить маркер доступа от FB.способ входа в JavaScript SDK для
мне нужно получить маркер доступа от FB.login
метод в JavaScript SDK для. Мой логин-код
FB.login(function(response) {
if (response.session) {
if (response.perms) {
} else {
// user is logged in, but did not grant any permissions
alert("No Permission..");
}
} else {
// user is not logged in
alert("Please login to facebook");
}
}, {perms:'read_stream,publish_stream,offline_access'});
есть ли способ получить маркер доступа? Я могу получить маркер доступа с помощью PHP
.
спасибо заранее....
7 ответов:
вы можете получить маркер доступа с помощью
FB.getAuthResponse()['accessToken']
:FB.login(function(response) { if (response.authResponse) { var access_token = FB.getAuthResponse()['accessToken']; console.log('Access Token = '+ access_token); FB.api('/me', function(response) { console.log('Good to see you, ' + response.name + '.'); }); } else { console.log('User cancelled login or did not fully authorize.'); } }, {scope: ''});
изменить: Обновлено для использования Oauth 2.0, требуется с декабря 2011 года. Теперь использует
FB.getAuthResponse();
Если вы используете браузер, который не имеет консоли, (я говорю с вами, Internet Explorer) не забудьте прокомментироватьconsole.log
строки или использовать лог-отказоустойчивый скрипт, например:if (typeof(console) == "undefined") { console = {}; } if (typeof(console.log) == "undefined") { console.log = function() { return 0; } }
response.session.access_token
не работает в моем коде. Но это работает:response.authResponse.accessToken
FB.login(function(response) { alert(response.authResponse.accessToken); }, {perms:'read_stream,publish_stream,offline_access'});
Если вы уже подключены, просто введите это в консоли JavaScript:
FB.getAuthResponse()['accessToken']
https://developers.facebook.com/docs/facebook-login/login-flow-for-web/
{ status: 'connected', authResponse: { accessToken: '...', expiresIn:'...', signedRequest:'...', userID:'...' } } FB.login(function(response) { if (response.authResponse) { // The person logged into your app } else { // The person cancelled the login dialog } });
ответ.сессии больше не работает, потому что ответ.authResponse-это новый способ доступа к содержимому ответа после миграции oauth.
проверка этой детали: SDKs & Tools "JavaScript SDK" FB.войти
window.fbAsyncInit = function () { FB.init({ appId: 'Your-appId', cookie: false, // enable cookies to allow the server to access // the session xfbml: true, // parse social plugins on this page version: 'v2.0' // use version 2.0 }); }; // Load the SDK asynchronously (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); function fb_login() { FB.login(function (response) { if (response.authResponse) { console.log('Welcome! Fetching your information.... '); //console.log(response); // dump complete info access_token = response.authResponse.accessToken; //get access token user_id = response.authResponse.userID; //get FB UID FB.api('/me', function (response) { var email = response.email; var name = response.name; window.location = 'http://localhost:12962/Account/FacebookLogin/' + email + '/' + name; // used in my mvc3 controller for //AuthenticationFormsAuthentication.SetAuthCookie(email, true); }); } else { //user hit cancel button console.log('User cancelled login or did not fully authorize.'); } }, { scope: 'email' }); }
<!-- custom image --> <a href="#" onclick="fb_login();"><img src="/Public/assets/images/facebook/facebook_connect_button.png" /></a> <!-- Facebook button --> <fb:login-button scope="public_profile,email" onlogin="fb_login();"> </fb:login-button>
window.fbAsyncInit = function () { FB.init({ appId: 'Your-appId', cookie: false, // enable cookies to allow the server to access // the session xfbml: true, // parse social plugins on this page version: 'v2.0' // use version 2.0 }); }; // Load the SDK asynchronously (function (d, s, id) { var js, fjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return; js = d.createElement(s); js.id = id; js.src = "//connect.facebook.net/en_US/sdk.js"; fjs.parentNode.insertBefore(js, fjs); }(document, 'script', 'facebook-jssdk')); function fb_login() { FB.login(function (response) { if (response.authResponse) { console.log('Welcome! Fetching your information.... '); //console.log(response); // dump complete info access_token = response.authResponse.accessToken; //get access token user_id = response.authResponse.userID; //get FB UID FB.api('/me', function (response) { var email = response.email; var name = response.name; window.location = 'http://localhost:12962/Account/FacebookLogin/' + email + '/' + name; // used in my mvc3 controller for //AuthenticationFormsAuthentication.SetAuthCookie(email, true); }); } else { //user hit cancel button console.log('User cancelled login or did not fully authorize.'); } }, { scope: 'email' }); }
<!-- custom image --> <a href="#" onclick="fb_login();"><img src="/Public/assets/images/facebook/facebook_connect_button.png" /></a> <!-- Facebook button --> <fb:login-button scope="public_profile,email" onlogin="fb_login();"> </fb:login-button>