Токен доступа от JavaScript
-
27-10-2019 - |
Вопрос
Я довольно новичок в Facebook и пытаюсь отобразить простой диалог, который напишет на стену ... но без повезло ... :-(
Я попробовал это:
<!DOCTYPE HTML>
<html xmlns:fb="https://www.facebook.com/2008/fbml">
<body>
<script src="http://connect.facebook.net/da_DK/all.js"></script>
<div id="fb-root"></div>
<script>
FB.init({appId: '172225549532081', xfbml: true, cookie: true});
FB.getLoginStatus(function(response) {
if (response.authResponse && response.status=="connected") {
console.log("loged in");
} else {
console.log("not logged in");
}
});
FB.ui({
display: 'iframe',
method: 'feed',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.'
});
</script>
</body>
</html>
Но он всегда входит в систему «не входит в систему», даже если я вошел в Facebook, и диалог дает мне эту ошибку:
API Error Code: 102
API Error Description: Session key invalid or no longer valid
Error Message: Iframe dialogs must be called with a session key
Я искал повсюду, но я не вижу, как получить access token
в любом месте.
Что я делаю не так?
Заранее спасибо...
Решение
Попробуй это:
FB.login(function(response) {
if (response.authResponse) {
console.log('Logged in');
} else {
console.log('Not logged in');
}
});
Тот факт, что пользователь вошел в систему на Facebook.com, он не автоматически вошел в ваш сайт. Они должны проверять подлинность в вашем домене, сначала с вашим приложением. Вам нужно будет вызвать функцию входа в систему после того, как они нажали что -то, так как это вызовет всплывающее окно.
Другие советы
Ваш пользователь подключен к вашему приложению?
Если пользователь не подключен к вашему приложению, вы можете попросить пользователя входа в ваше приложение, имея кнопку входа в систему (http://developers.facebook.com/docs/reference/plugins/login/)
Приведенный ниже код проверит статус пользователя и при необходимости покажет кнопку входа в систему.
Не забудьте установить атрибут Perms для получения соответствующего разрешения, например
FB.getLoginStatus(function(response) {
if (response.authResponse) {
// logged in and connected user, someone you know
} else {
// no user session available, someone you dont know
$('<fb:login-button></fb:login-button>').appendTo('body')
}
});
FB.ui({
display: 'iframe',
method: 'feed',
name: 'Facebook Dialogs',
link: 'http://developers.facebook.com/docs/reference/dialogs/',
picture: 'http://fbrell.com/f8.jpg',
caption: 'Reference Documentation',
description: 'Dialogs provide a simple, consistent interface for applications to interface with users.',
access_token: FB.getAuthResponse().accessToken // **This should work and tested** also!!!
});