我曾参考过许多文章,但它无法解决这个问题。我试图从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
}
})
任何人都可以向我解释用户登录后获取用户信息的方式。
答案 0 :(得分:1)
我知道所犯的错误。 当此人试图访问提要时,会话将过期。
因此,请在代码部分FB.api('/me/feed',function(response){})
中加入FB.login(function(response) {})
现在,会话将能够访问用户进程。
答案 1 :(得分:0)
您的应用需要user_posts才能获得用户的Feed。 /user/feed文档很好地解释了这一点。在任何情况下,您都需要实施Facebook登录,向用户请求user_posts权限,并从中获取用户的订阅源。