SDK do Facebook para JavaScript com AngularJS

Você pode integrar o SDK do Facebook para JavaScript com AngularJS. No entanto, como nosso SDK precisa trabalhar para a Web e não para uma estrutura específica, não oferecemos um módulo de AngularJS.

Como carregar o SDK do Facebook para JavaScript

Para a adição do SDK do Facebook para JavaScript ao seu aplicativo, recomendamos que você siga o documento de instruções Autenticação do Facebook em seu aplicativo Web AngularJS ou outros guias publicados em https://docs.angularjs.org/guide.

Use a versão mais recente do SDK

Ao seguir qualquer guia, não se esqueça de carregar o arquivo do SDK mais recentesdk.js:

// Old SDK (deprecated)
js.src = "https://connect.facebook.net/en_US/all.js";

// New SDK (v2.x)
js.src = "https://connect.facebook.net/en_US/sdk.js";

e forneça uma versão da Graph API (atualmente v2.4) na chamada FB.init():

$window.fbAsyncInit = function() {
    FB.init({ 
      appId: '{your-app-id}',
      status: true, 
      cookie: true, 
      xfbml: true,
      version: 'v2.4'
    });
};

Como lidar com retornos de chamada

O SDK do Facebook para JavaScript não oferece suporte ao conceito de promessas. Como uma solução alternativa, você pode agrupar suas chamadas do SDK do Facebook para JavaScript (por exemplo) em um serviço:

// ...
.factory('facebookService', function($q) {
    return {
        getMyLastName: function() {
            var deferred = $q.defer();
            FB.api('/me', {
                fields: 'last_name'
            }, function(response) {
                if (!response || response.error) {
                    deferred.reject('Error occured');
                } else {
                    deferred.resolve(response);
                }
            });
            return deferred.promise;
        }
    }
});

Use o serviço, por exemplo, como este:

$scope.getMyLastName = function() {
   facebookService.getMyLastName() 
     .then(function(response) {
       $scope.last_name = response.last_name;
     }
   );
};

Bibliotecas de terceiros

Também há várias bibliotecas de terceiros que simplificam o uso do SDK do Facebook para JavaScript listadas na página Guia de AngularJS.