私は多くのソリューションを試しました下記のエラーのために何も私のために働いています私は実装のために "https://developers.facebook.com/docs/javascript/howto/angularjs"を尊敬しています。FB init関数がangularJsで動作していません
「エラー:FBが定義されていない」私は、コントローラとサービスのファイルについては、以下の私のコードを共有しています
を。
socialMedia.js -controller
'use strict';
app
.controller('SocialMediaController', [
'$rootScope', '$scope', '$location', '$cookieStore' , 'SocialMedia', 'ngToast','$window',
function ($rootScope, $scope, $location, $cookieStore, SocialMedia, ngToast,$window) {
$window.fbAsyncInit = function() {
FB.init({
appId: '************',
status: true,
cookie: true,
xfbml: true,
version: 'v2.4'
});
};
// Load the SDK asynchronously
(function(d, s, id) {
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) return;
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
$scope.testAPI = function() {
SocialMedia.getMyLastName()
.then(function(response) {
$scope.last_name = response.last_name;
}
);
};
}
]);
socialMedia.js -Services
'use strict';
app
.factory('SocialMedia', [
'$http', '$cookieStore', '$rootScope', 'appApi', function ($http, $cookieStore, $rootScope, appApi) {
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;
}
}
}
]);
HTMLファイル
<input type="button" ng-click="testAPI()" value="Save" class="btn btn-primary md-trigger" />
私はこれで間違っているところを私にkonwしてみましょう。
ありがとうございます。私はあなたのsocialMediaサービスがその前にFB.apiを呼び出していると仮定します。私はどちらのログイン機能も見ません、btw。とにかく/私はとにかく動作しません。 – luschn
多分これはちょっとした助けになります:http://www.devils-heaven.com/facebook-javascript-sdk-login/ – luschn