Вопрос

Я довольно новичок в 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!!!
});
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top