用户在Facebook登录后重定向到Facebook应用程序

时间:2014-09-09 07:18:22

标签: javascript facebook facebook-graph-api

你好我有一个问题,因为我是新手来创建facebook应用程序。 我正在使用javascript sdk创建一个基本应用程序,仅用于向用户发送通知。

我有下面的代码。

FB.getLoginStatus(function(response) {
        if (response.status === 'connected') {

            var uid = response.authResponse.userID;
            accessToken = response.authResponse.accessToken;

            FB.api('/me', function(info) {
                $('#welcome').html("Hello there " + info.birthday );
            });

        } else if (response.status === 'not_authorized') {
            //User is logged into Facebook, but not your App
              var oauth_url = 'https://www.facebook.com/dialog/oauth/';
              oauth_url += '?client_id=xxxxxxxx'; //Your Client ID
              oauth_url += '&redirect_uri=' + 'https://apps.facebook.com/xxxxxxx/'; //Send them here if they're not logged in
              oauth_url += '&scope=user_about_me,email,user_location,publish_actions,user_birthday,publish_stream';

              window.top.location = oauth_url;              
        } else {
            // User is not logged into Facebook at all
            window.top.location ='https://www.facebook.com/index.php';
        } //response.status
    }); //getLoginStatus
}; //fbAsyncInit

当用户登录并且未授权将授权窗口和工作时。 当用户登录并且授权正在工作时。 但是当用户未获得授权且未登录到Facebook时,应用程序会将我重定向到登录用户的页面,但是在没有再次重定向到应用程序以检查是否已获得授权之后。

有人可以帮我这个吗?怎么做。 谢谢

1 个答案:

答案 0 :(得分:0)

你这样做对自己来说太难了。使用FB.login进行登录过程:https://developers.facebook.com/docs/reference/javascript/FB.login/v2.1

但是不要在FB.getLoginStatus的(异步)回调函数中使用它,它应该总是通过用户交互直接调用。

顺便说一下,publish_stream已弃用多年,publish_actions涵盖相同的权限。不知道你从哪里获得了这些代码,但我强烈建议使用官方的Facebook文档。

但要小心publish_actions。不允许同时重新获取读取和写入权限。只在您需要之前请求publish_actions - 尽管您不需要它来发送通知。有关通知的详细信息,请参阅这些链接:

第二个是德语,但代码是相关的部分。请务必仔细阅读Facebook文档中的整篇文章,其中包含许多重要信息。