2012-06-02 3 views
1

Я думаю, что это очень очевидный вопрос, но я полностью в тупике. Я думаю, что правильно настроил настройки своего приложения, но когда я пытаюсь выполнить аутентификацию (с помощью Javascript SDK) моей учетной записи на своем веб-сайте, а затем console.log (я), я до сих пор получаю публичную информацию.Как запросить разрешения для информации пользователей?

EDIT: Я считаю, что моя проблема заключается в том, что мой сайт использует «Текущий диалог», а не «Диалог ссылок». Я понимаю, что реферальный диалог используется только тогда, когда кто-то направляется на мой сайт через Facebook, но я знаю, что должен быть способ использовать Диалог ссылок и с моего сайта. Зачем кому-либо использовать текущий диалог, если он может только аутентифицировать сервер с общедоступной информацией пользователя? Я прочитал еще одно сообщение, в котором говорится, что я должен посмотреть на документ проверки подлинности (https://developers.facebook.com/docs/authentication/), но насколько я вижу, там нет ничего, что можно было бы разрешить с помощью Диалога ссылок.

Я хочу использовать Javascript SDK. Возможно ли это, или мне нужно просто сделать это без Javascript SDK?

В Auth Диалог, у меня есть это: электронная почта, user_about_me, user_likes, USER_LOCATION, user_website, user_checkins

Вот мой код:

// Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 

    // Init the SDK upon load 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '464723870207650', // App ID 
     channelUrl : '//'+window.location.hostname+'/scripts/channel.php', // Path to your Channel File 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    // listen for and handle auth.statusChange events 
    FB.Event.subscribe('auth.statusChange', function(response) { 
     if (response.authResponse) { 
     // user has auth'd your app and is logged into Facebook 
     FB.api('/me', function(me){ 
      console.log(me); 
     }) 
     } else { 
     // user has not auth'd your app, or is not logged into Facebook 
     } 
    }); 
    } 

Когда я запускаю его через отладчик, я не» t получить любые ошибки.

ответ

2

Просто вызовите метод FB.login вместе с пожелавшими разрешениями:

function login() { 
    FB.login(function(response) { 
     console.log("FB.login callback, response: ", response); 
    }, { scope: "email,publish_stream,etc" }); 
} 

Просто имейте в виде, что:

Вызов результатов FB.login в JS SDK при попытке открыть всплывающее окно , Таким образом, этот метод следует вызывать только после того, как пользователь нажмет событие, иначе всплывающее окно будет заблокировано большинством браузеров.

Смежные вопросы