Javascript 使用AngularJS获取facebook好友列表
我是新来安格拉斯的。我试着使用AngularJS获取用户的Facebook好友列表,我在这里找到了一些代码 在my index.html文件中: 我的问题是- 尽管Facebook响应已连接,但此代码始终将user.connected返回为false。这个代码有什么问题? 在这种情况下,如何延迟服务异步操作?Javascript 使用AngularJS获取facebook好友列表,javascript,facebook,angularjs,facebook-graph-api,Javascript,Facebook,Angularjs,Facebook Graph Api,我是新来安格拉斯的。我试着使用AngularJS获取用户的Facebook好友列表,我在这里找到了一些代码 在my index.html文件中: 我的问题是- 尽管Facebook响应已连接,但此代码始终将user.connected返回为false。这个代码有什么问题? 在这种情况下,如何延迟服务异步操作? 这段代码实际上运行得很好。所有你需要做的就是添加到你在Facebook注册的应用程序的应用程序域 我在找一些不是手机的网络版本。你们能提供什么网站链接吗?@chinmoyamity我更新了
这段代码实际上运行得很好。所有你需要做的就是添加到你在Facebook注册的应用程序的应用程序域 我在找一些不是手机的网络版本。你们能提供什么网站链接吗?@chinmoyamity我更新了我的答案。你的代码运行良好。请听我的回答。我已经测试过了。祝你好运。太好了,它起作用了。我在localhost中尝试了相同的过程,并且相应地在facebook应用程序设置中进行了更改,但没有得到结果。有什么想法吗?试着将其保留为空或作为localhost或@chinmoyamity转到高级设置,然后使用您的localhost url http://localhost:port输入有效的OAuth重定向URI。看见
<!DOCTYPE html>
<html ng-app="funwithfb">
<head>
<meta charset="utf-8">
<title>FB With Angular</title>
<link rel="stylesheet" href="css/bootstrap.css">
</head>
<body ng-controller="MainController">
<div id="fb-root"></div>
<div class="ng-cloak" ng-show="user.connected">
Hello {{user.first_name}}!
</div>
<div class="ng-cloak" ng-hide="user.connected">
One moment please...
</div>
<script src="http://connect.facebook.net/en_US/all.js"></script>
<script type="text/javascript">
FB.init({
appId : '272951952842742',
xfbml : true,
version : 'v2.0',
});
</script>
<script src="js/angular.min.js"></script>
<script src="js/app.js"></script>
</body>
</html>
var app=angular.module('funwithfb',[]);
app.controller('MainController',function($scope,Facebook){
$scope.user=Facebook.getUser(FB);
console.log($scope.user);
});
app.service('Facebook', function($q, $rootScope) {
// resolving or rejecting a promise from a third-party
// API such as Facebook must be
// performed within $apply so that watchers get
// notified of the change
resolve = function(errval, retval, deferred) {
$rootScope.$apply(function() {
if (errval) {
deferred.reject(errval);
} else {
console.log(retval);
retval.connected = true;
console.log(retval);
deferred.resolve(retval);
}
});
}
return {
getUser: function(FB) {
var deferred = $q.defer();
FB.getLoginStatus(function(response) {
if (response.status == 'connected') {
FB.api('/me', function(response) {
resolve(null, response, deferred);
});
} else if (response.status == 'not_authorized') {
FB.login(function(response) {
if (response.authResponse) {
FB.api('/me', function(response) {
resolve(null, response, deferred);
});
} else {
resolve(response.error, null, deferred);
}
});
}
});
promise = deferred.promise;
promise.connected = false;
return promise;
}
};
});