13

AngularのためのFacebookサービスを作成しようとしていますので、Facebook JS SDKとGraph APIを使ってコードをテストする方が簡単です。ここで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); 

は今、私は実際のFacebook SDKの一部が機能していることを知っている...しかし、私のコントローラの参照は常にnullです。それは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

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

以下のようなAPIドキュメントが十分に明確ではありません。配列のブラケットを使用して、工場の機能を囲み配列の角かっこを持つポイントは、依存関係を指定できることです。 AUTO。$ injectを使用してサービスを作成すると注入されます。あなたが依存関係を持っていないので、しかし、それはあなたが依存関係を必要とする場合、あなたは私が書いたこのFacebookのモジュールを見てみる必要があります。この

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

それは私が見ていた問題を解決しました。今、私は、FB APIの非同期性に関連して、まったく異なる一連の問題を抱えています。ありがとう。 –

+1

@blesh for ispiration(スコープの場合)https://gist.github.com/whisher/6270204をご覧ください。それは単なるスニペットです – Whisher

1

ようにそれらを要求することができ、とにかくそのタスク:)

をスキップします。

まず、FacebookProviderをFacebookProvider.init( 'yourFacebookAppIdHere')という名前のアプリケーション設定呼び出しで使用します;他の設定もコンフィグレーションすることができます。その後、コントローラ上でFacebookサービスを使用してイベントと呼び出しメソッドに登録しますasyncrhonously;)

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

関連する問題