2012-03-10 13 views
1

私はFacebookのサポートをブログエンジンに統合しようとしています。 Facebookデベロッパーページにアプリを登録しました。
私は、ユースケース、4つの異なる種類を実装したいと思います:サイト上Facebook API:同じアプリ内のさまざまなユーザーに対して異なるアクセス許可を処理するにはどうすればよいですか?

  • 訪問者は、Facebookのアカウントでログインすることができます。
    自分のプライベートデータには関心がなく、自分のサイトに自分のサイトにアクセスしたくないので、特別なアクセス権を要求したくありません。
  • サイトのオーナーはFacebookのステータスを表示できます。
    私は、ブログエンジンがFacebookからのサイト所有者の最新ステータスアップデートを取得し、それらのうちの最後のものを表示できるようにしたいと思います。
  • 新しい記事がサイトに投稿されたときに、新しいステータス更新を転記します。
    サイトは、新しい記事をサイトに投稿するときに、所有者のFacebookアカウントにステータス更新を投稿できる必要があります。
  • ギャラリー
    サイトのギャラリーは、オーナーのFacebookアカウントの画像を表示できます。

初めての場合、私はパーミッションを必要としません。他の人には、いくつかの権限が必要です。私のアプリのさまざまなユーザーに対して異なる権限を要求するにはどうすればよいですか?

答えて

1

FacebookのAPIでは、ユーザーのアクセス許可を徐々に増加させることができます。実際、これは、現在の操作が完了するのに必要なだけ、ユーザー権限を許可するFacebookのガイドラインです。

デフォルトのアクセス権レベルでユーザーにログインし、必要に応じて増やすことができます。 FBのAPIには、アプリのすべてのユーザーが同じアクセス許可セットになることはありません。

このためのコードは次のようになります。

FB.login(function(response) { 
    // handle the response 
}); 

あなたは「/ ME /権限」APIエンドポイントを照会し、あなたのアプリに付与された現在のアクセストークンを渡すことによって、ユーザーの現在のアクセス権のためのAPIを頼むことができます。

サーバー側では、呼び出し:

https://graph.facebook.com/me/permissions?access_token=XXX 

// Sample JSON response: 

{ 
    "data": [ 
    { 
     "installed": 1, 
     "status_update": 1, 
     "photo_upload": 1, 
     "video_upload": 1, 
     "offline_access": 1, 
     "email": 1, 
     "create_note": 1, 
     "share_item": 1, 
     "publish_stream": 1, 
     "user_location": 1, 
     "user_interests": 1, 
     "user_online_presence": 1, 
     "user_website": 1, 
     "user_photos": 1, 
     "user_videos": 1, 
     "user_photo_video_tags": 1, 
     "user_checkins": 1 
    } 
    ] 
} 

// or use the following JS snippet: 
FB.api('/me/permissions', function(response) { 
    // handle the response 
}); 

あなたはより多くのアクセス権を取得したい場合は、単にあなたの選択の実装方法で(JS SDKを介して行われている場合)FB.login操作や適切な操作を行っています。

二FB.loginは次のようになります。

FB.login(function(response) { 
    // handle the response 
}, {scope: 'email,user_likes'}); 
+0

もう少し詳しいことを教えてください。 (私はDotNetOpenAuthを使用します。) – Venemo

+0

Venemo:DotNetOpenAuthについてはわかりませんが、JS SDKのコードサンプルとサーバーサイドのGraph API呼び出しとサンプルレスポンスが追加されました。これは、あなたを行かせるのに十分なはずです。 DotNetOpenAuthを使用してこれを行う方法の詳細は、そのライブラリを知っている人からの特定の応答のドキュメントや希望を理解する必要があります。 – Shreeni

+0

ありがとう!サーバー側の呼び出しは私が必要とするものです。どのように働いているか教えてあげます。 :) – Venemo

0

ユーザーが初めてアプリケーションを認証するときに必要なアクセス許可を正確に指定することができるため、他の認証方法でアクセス許可/役割を管理するのと同じ方法で管理できます。異なるユーザー用に異なるログインページを作成するだけです。

+0

私は私がそれを行うことができるようになるのFacebookのdevのページでオプションを見つけることができませんでした。どうやったらそれを教えてください。 – Venemo

関連する問題