Вы можете интегрировать Facebook SDK для JavaScript с AngularJS. Однако наш SDK предназначен для работы в веб-браузере, а не в определенном фреймворке. Поэтому мы не предлагаем модуль AngularJS.
Инструкции по добавлению Facebook SDK для JavaScript в приложение см. в руководстве по аутентификации Facebook в веб-приложении AngularJS или в других руководствах на сайте https://docs.angularjs.org/guide.
Перед выполнением инструкций из руководств убедитесь, что вы загрузили актуальную версию файла SDK sdk.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";
Также проверьте, что вы указали актуальную версию API Graph (на сегодняшний день это версия v2.4
) в вызове FB.init()
.
$window.fbAsyncInit = function() { FB.init({ appId: '{your-app-id}', status: true, cookie: true, xfbml: true, version: 'v2.4' }); };
Facebook SDK для JavaScript не поддерживает концепцию обещаний. Чтобы устранить эту проблему, вы можете объединить вызовы Facebook SDK для JavaScript в службу.
// ... .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; } } });
Например, можно использовать такую службу:
$scope.getMyLastName = function() { facebookService.getMyLastName() .then(function(response) { $scope.last_name = response.last_name; } ); };
Сторонние библиотеки упрощают использование Facebook SDK для JavaScript. Список библиотек см. здесь.