SDK di Facebook per JavaScript con AngularJS

Puoi integrare l'SDK di Facebook per JavaScript con AngularJS. Tuttavia, poiché il nostro SDK deve funzionare per il Web e non per un particolare framework, non offriamo un modulo AngularJS.

Caricamento dell'SDK di Facebook per JavaScript

Per aggiungere l'SDK di Facebook per JavaScript alla tua app, consigliamo di seguire l'articolo Facebook authentication in your AngularJS web app (Autenticazione Facebook nella tua app Web AngularJS) o le altre guide pubblicate su https://docs.angularjs.org/guide.

Uso della versione dell'SDK più recente

Qualunque sia la guida che stai seguendo, assicurati di caricare il filesdk.js dell'SDK più recente:

// 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";

Fornisci inoltre una versione API Graph (attualmente v2.4) nella chiamata FB.init():

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

Gestione delle callback

L'SDK di Facebook per JavaScript non supporta il concetto di promesse. Come soluzione, puoi raggruppare le tue chiamate dell'SDK di Facebook per JavaScript (ad esempio) in un servizio:

// ...
.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;
        }
    }
});

Ad esempio, usa un servizio simile al seguente:

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

Librerie di terzi

Nella pagina relativa alla guida su AngularJS, sono elencate diverse librerie di terzi che semplificano l'uso dell'SDK di Facebook per JavaScript.