13

Angular 용 Facebook 서비스를 만들려고합니다. 따라서 Facebook JS SDK 및 Graph API를 사용해야하는 코드를 더욱 쉽게 테스트 할 수 있습니다. 내가 실제 페이스 북 SDK의 일부가 작동하는지 알고, 이제AnglesJS 컨트롤러에 Facebook JS SDK 삽입

app.factory('facebook', function() { 
    return FB; 
}); 

window.fbAsyncInit = function() { 
    FB.init({ 
     appId: 'SOME_APP_ID_HERE', // App ID 
     status: true, // check login status 
     cookie: true, // enable cookies to allow the server to access the session 
     xfbml: true, // parse XFBML 
     oauth: true 
    }); 
}; 

// Load the SDK Asynchronously 
(function (d) { 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) { return; } 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
})(document); 

을 ...하지만 내 컨트롤러에 참조가 항상 널 :

는 여기에 지금까지 무슨이다. 다음은 facebookProvider을 찾을 수 없다는 불만

function FooCtrl($scope, facebook) { 
    facebook.getLoginStatus(function(response) { 
     if (response.status === 'connected') { 
      var uid = response.authResponse.userID; 
      var accessToken = response.authResponse.accessToken; 
      // do something 
     } else if (response.status === 'not_authorized') { 
      // the user is logged in to Facebook, 
      // but has not authenticated your app 
     } else { 
      // the user isn't logged in to Facebook. 
     } 
    }); 
} 

각도 : 내 컨트롤러에서

난 그냥 이런 식으로 뭔가가있다. 내가 이것을 어떻게 성취 할 수 있을지에 대한 아이디어가 있습니까?

+0

당신은 plunker을 만들 수 있을까? plnkcr.co, 새로 만들기 -> angularJS –

+0

https://groups.google.com/forum/?fromgroups#!topic/angular/YkdZsH8ax4o%5B1-25%5D를 사용해 보셨습니까? – Max

답변

6

는 API 문서가 충분히 명확하지

app.factory('facebook', [function() { 
    return FB; 
}]); 

아래처럼 배열 브래킷과의 공장 기능을 묶습니다. 배열 대괄호를 사용한다는 것은 종속성을 지정할 수 있다는 것입니다. AUTO. $ inject를 사용하여 서비스를 만들 때 주입됩니다. 당신이 의존성을 가지고 있지 않기 때문에 그러나 그것은 당신이 종속성을 필요로하는 경우 당신은 내가 쓴이 페이스 북 모듈을 살펴한다이

app.factory('facebook', ["$log", function($someCrazyLoggerService){ 
    $someCrazyLoggerService.log("I'm Auto Injected crazy Logger"); 
}]); 
+0

그게 내가보고있는 문제를 해결했습니다. 이제는 FB API의 비동기 특성과 관련하여 완전히 다른 일련의 문제가 있습니다. 감사. –

+1

호흡 용 @blesh (스코프 용)은 https://gist.github.com/whisher/6270204를 보시면됩니다. – Whisher

1

처럼 그들을 요청할 수, 어쨌든 그 작업 :

를 건너 뜁니다.

먼저 응용 프로그램 구성 호출에서 FacebookProvider를 사용하십시오 (예 : FacebookProvider.init ('yourFacebookAppIdHere')). 다른 설정도 구성 할 수 있으며, 컨트롤러에서 Facebook 서비스를 사용하고 이벤트 및 호출 메소드에 등록하십시오 asyncrhonously)

https://github.com/ciul/angularjs-facebook