Facebook Javascript диалог разрешения для электронной почты - PullRequest
0 голосов
/ 20 октября 2011

У меня есть вопрос .... Я на самом деле разрабатываю приложение для Facebook с FB javascript SDK.В моей заявке мне нужно разрешение электронной почты для дальнейшей обработки.я использую

FB.Connect.showPermissionDialog ("электронная почта");но кое-что, как диалоговое окно не появляется ... вот мой код

 <script>
    appid = '*************';
    name = 'Palmchip Test App';
    href = 'https://apps.facebook.com/*********/';
    FB.init({
    appId:appid, cookie:true,
    status:true, xfbml:true
    });
    FB.getLoginStatus(function(response) {
    if (response.session) {
    alert("You are logged in...");
    FB.Connect.showPermissionDialog("email", function(perms) {
           if (!perms) {
            alert("no access");
           } else {
               alert("accessed...");
           }
         });
    }
    else {
    top.location.href='https://graph.facebook.com/oauth/authorize?client_id='+appid+'&redirect_uri='+href+'&display=page';
    }
    });

</script>

предупреждение, которое говорит вы вошли в систему ... работает нормально, но тогда ничего не происходит .....

Ответы [ 2 ]

0 голосов
/ 06 декабря 2011

Попробуйте этот блок кода

FB.init({appId: <?= APP_ID ?>, status: true, cookie: true, xfbml: true, oauth:true});

function getin(){
    FB.login(function(response) {
        if (response.authResponse) {
            var regurl = "/login";
            location.href=regurl;

        } else {
            var regurl = "/logout";
            window.location.href=regurl;
        }
    }, {scope:'email'});

}

Поэтому, когда вы вызываете функцию getin () , если текущий пользователь уже дал вам адрес электронной почты, он ничего не сделает для него, простоперенаправит его на / login url, но если пользователь новый пользователь, то он / она увидит всплывающее окно с запросом адреса электронной почты, как только он / она разрешит, что вы можете получить адрес электронной почтыиспользуя график или FQL.Кстати, ответ внутри FB.login содержит идентификатор пользователя, access_toke и некоторые другие полезные данные, поэтому сохраните их для дальнейшего использования.

0 голосов
/ 20 октября 2011
  1. Необходимо обновить до OAuth 2.0 ouath: true
  2. Вы должны использовать новый OAuth Dialog
  3. Вы должны знать, что при обновлении FB.getLoginStatus() будет возвращать различные объекты: response.authResponse
...