facebook登录无效

时间:2012-01-02 12:22:35

标签: php javascript facebook-graph-api

我使用javascript代码在我的项目中实现了facebook登录。它工作正常,但现在它无法正常工作。登录弹出窗口也无法正常工作。

代码在这里

<fb:login-button autologoutlink="true" perms="email,user_birthday,status_update,publish_stream"></fb:login-button>

我将权限更改为范围。弹出窗口出现但脚本问题仍然存在。

使用的脚本代码:

    <div id="fb-root"></div>
    <script type="text/javascript">
        window.fbAsyncInit = function() {
            FB.init({appId: 'APPID', status: true, cookie: true, xfbml: true});

            /* All the events registered */
            FB.Event.subscribe('auth.login', function(response) {
                // do something with response
                login();
            });
            FB.Event.subscribe('auth.logout', function(response) {
                // do something with response
                logout();
            });

            FB.getLoginStatus(function(response) {
                if (response.session) {
                    // logged in and connected user, someone you know
                    login();
                }
            });
        };
        (function() {
            var e = document.createElement('script');
            e.type = 'text/javascript';
            e.src = document.location.protocol +
                '//connect.facebook.net/en_US/all.js';
            e.async = true;
            document.getElementById('fb-root').appendChild(e);
        }());

        function login(){
            FB.api('/me', function(response) {
               fqlQuery();//fqlquery function

            });
        }
        function logout(){
            document.getElementById('login').style.display = "none";
        }



        function fqlQuery(){
            FB.api('/me', function(response) {
                 var query = FB.Data.query('select name, hometown_location, sex, pic_square from user where uid={0}', response.id);
                 query.wait(function(rows) {

                   document.getElementById('name').innerHTML =
                     'Your name: ' + rows[0].name + "<br />" +
                     '<img src="' + rows[0].pic_square + '" alt="" />' + "<br />";
                 });
            });
        }

有没有其他方法来纠正这个问题?请帮帮....

1 个答案:

答案 0 :(得分:0)

我认为你在加载facebook javascript SDK时缺少查询字符串中的APP ID。每https://developers.facebook.com/docs/reference/plugins/login/他们因某种原因需要它

<div id="fb-root"></div>
<script>(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/all.js#xfbml=1&appId=APP_ID";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

另外我注意到您的登录按钮HTML没有正确的属性。根据文档,show-faceswidthmax-rowsscope是唯一有效的参数。