您可以集成 AngularJS 和 JavaScript 版 Facebook SDK。但由于我们的 SDK 适用于 Web 环境,而不是其他特定框架,所以我们并未提供 AngularJS 模块。
如需向应用添加 JavaScript 版 Facebook SDK,我们建议您按照 AngularJS 网页应用中的 Facebook 身份验证文档或 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";
并在 FB.init()
调用中提供图谱 API 版本(目前是 v2.4
):
$window.fbAsyncInit = function() { FB.init({ appId: '{your-app-id}', status: true, cookie: true, xfbml: true, version: 'v2.4' }); };
JavaScript 版 Facebook SDK 不支持 Promise 的概念。为解决这个问题,您可以在服务中捆绑 JavaScript 版 Facebook SDK 调用函数(举例):
// ... .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; } ); };
AngularJS 指南页面还列出了一些第三方学习资源,可帮助您便捷地使用 JavaScript 版 Facebook SDK。