Javascript 使用AngularJS获取facebook好友列表

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我更新了

我是新来安格拉斯的。我试着使用AngularJS获取用户的Facebook好友列表,我在这里找到了一些代码

在my index.html文件中:

我的问题是-

尽管Facebook响应已连接,但此代码始终将user.connected返回为false。这个代码有什么问题? 在这种情况下,如何延迟服务异步操作?
这段代码实际上运行得很好。所有你需要做的就是添加到你在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;
      }
    }; 
  });