如何使用角度js从Facebook获取用户提要。

时间:2015-04-27 13:59:37

标签: javascript angularjs facebook facebook-graph-api facebook-javascript-sdk

我曾参考过许多文章,但它无法解决这个问题。我试图从Facebook获取用户的信息。我怎么能得到它。

这是我的代码:

var newMod = angular.module('newapp', []);

newMod.controller('mainCtrl', function ($scope) {

window.fbAsyncInit = function () {
    //SDK loaded, initialize it
    FB.init({
        appId: 'your app id',
        xfbml: true,
        version: 'v2.3'
    });

    //check user session and refresh it
    FB.getLoginStatus(function (response) {
        if (response.status === 'connected') {
            //user is authorized
            document.getElementById('loginBtn').style.display = 'none';
            getUserData();
        } else {
            //user is not authorized
        }

       });

    function getUserData() {
        FB.api('/me', function (response) {
            document.getElementById('response').innerHTML = 'Hello ' + response.name;
            document.getElementById('dialog_div').style.border = '1px solid red';
            document.getElementById('dialog_div').innerHTML = response;
        });


    }
};

//load the JavaScript SDK
(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/sdk.js";
    fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));


$scope.loginClick = function () {
    FB.login(function (response) {
        if (response.authResponse) {
            //user just authorized your app
            document.getElementById('loginBtn').style.display = 'none';
            getUserData();
        }
    }, { scope: 'email,public_profile', return_scopes: true });
}

});

我的HTML代码:

<body ng-app="newapp">

<div ng-controller="mainCtrl">
<button id='loginBtn' ng-click="loginClick()" >FacebookLOGin</button>
    <div id="response"></div>
    <div id="dialog_div"></div>
</div>

来自getuserdata()的

我能够获取用户详细信息。现在如何访问用户提要。我曾尝试使用下面的代码,但它输出空数组。

FB.api("/me/feed",function(response){
if(response !="" ){
// access the feed data
  }
})

任何人都可以向我解释用户登录后获取用户信息的方式。

2 个答案:

答案 0 :(得分:1)

我知道所犯的错误。 当此人试图访问提要时,会话将过期。

因此,请在代码部分FB.api('/me/feed',function(response){})中加入FB.login(function(response) {}) 现在,会话将能够访问用户进程。

答案 1 :(得分:0)

您的应用需要user_posts才能获得用户的Feed。 /user/feed文档很好地解释了这一点。在任何情况下,您都需要实施Facebook登录,向用户请求user_posts权限,并从中获取用户的订阅源。