ユーザがアプリを許可するとき、デフォルトでアプリに与えられる権限はユーザ基本情報の読み込みのみです。それ以上のデータを読み込みたかったり、Facebookに対して書き込みを行いたい場合は、必要に応じてパーミッションを得る必要があります。
パーミッションは以下の5つに分けられます。
- Basic Information (パーミッション不要)
- User and Friend Permissions
- Extended Permissions
- Open Graph Permissions
- Page Permissions
Basic Information
アプリ側が追加でパーミッションを要求していない状態でユーザがアプリを許可すると、あなたのアプリはユーザの基本情報にしかアクセスできません。デフォルトでは、この情報はid, name, picture, gender, localeを含みます。
また、Friendsコネクションなど一部のUserオブジェクトのコネクションも読むことができますし、ユーザが多くのデータを一般公開にしていれば、より多くのデータを読み込むことが可能です。
アプリを許可したユーザがキャンバスページやページタブでアプリを開くと、アプリへはユーザの年齢層データも渡されます。これは、アルコールの販促ページなどで年齢制限を設けるような場合に便利です。
User and Friends Permissions
ユーザ自身の情報やユーザの友だちの情報にアクセスする為の以下のパーミッションを、認証プロセス中にscopeパラメータに渡すことで要求できます。
新しい認証ダイアログを用いれいる場合、以下のパーミッションは、認証プロセス中にユーザによって取り消されることはありません。最初の認証時にユーザから以下のパーミッションを求めるならば、それら全てのパーミッションを許可しない限り、ユーザがアプリを許可して利用することはできません。
User permission | Friends permission | Description |
---|---|---|
user_about_me |
friends_about_me |
aboutプロパティで、プロフィールの自己紹介セクションにアクセス |
user_activities |
friends_activities |
activitiesコネクションから、アクティビティ一覧にアクセス |
user_birthday |
friends_birthday |
birthdayプロパティで、生年月日にアクセス |
user_education_history |
friends_education_history |
educationプロパティで、学歴にアクセス |
user_events |
friends_events |
eventsコネクションから、参加するイベント一覧にアクセス |
user_groups |
friends_groups |
groupsコネクションから、属するグループの一覧にアクセス |
user_hometown |
friends_hometown |
hometownプロパティから、出身地にアクセス |
user_interests |
friends_interests |
interestsコネクションから、興味のあること一覧にアクセス |
user_likes |
friends_likes |
likesコネクションから、いいね!の一覧にアクセス |
user_location |
friends_location |
locationプロパティから、居住地にアクセス |
user_notes |
friends_notes |
notesコネクションから、ノート一覧にアクセス |
user_photos |
friends_photos |
アップロードした写真と、タグ付けされた写真にアクセス |
user_questions |
friends_questions |
質問したクエスチョンへのアクセス |
user_relationships |
friends_relationships |
家族などの個人的つながりや、そのステータス |
user_relationship_details |
friends_relationship_details |
恋愛対象にアクセス |
user_religion_politics |
friends_religion_politics |
宗教・信仰と政治観にアクセス |
user_status |
friends_status |
ステータス投稿とチェックインへのアクセス。FQLのlocation_postテーブルのリファレンスで、投稿に紐づく位置情報の取得方法を確認してください。 |
user_subscriptions |
friends_subscriptions |
ユーザ、もしくはユーザの友だちの購読・購読者屁のアクセス |
user_videos |
friends_videos |
アップロードした動画とタグ付けされた動画にアクセス |
user_website |
friends_website |
ウェブサイトURLにアクセス |
user_work_history |
friends_work_history |
職歴にアクセス |
email |
N/A | 主要なメールアドレス。ユーザにスパムメールを送らないでください。メールアドレスの扱いは、Facebookの規約とCan-SPAM Act(http://business.ftc.gov/documents/bus61-can-spam-act-compliance-guide-business)に従う必要があります。 |
Extended Permissions
以下のパーミッションを取得しようとする場合、要求するパーミッションの一覧は認証ダイアログの2つ目の画面に表示されます。それぞれのパーミッションを許可するか否かはユーザ次第で、ユーザは許可したいパーミッションのみ選択できます。
readで始まるものは読み取り専用で、データの書き込みはできません。
Permission | Description |
---|---|
read_friendlists |
ユーザが作成した友だちリストへのアクセス。 |
read_insights |
ユーザが管理するドメイン、アプリケーション、Facebookページのインサイトデータへのアクセス |
read_mailbox |
ユーザのメッセージボックスへのアクセス |
read_requests |
ユーザ宛の友だちリクエストへのアクセス |
read_stream |
ユーザのニュースフィードへのアクセスと検索 |
xmpp_login |
Facebookチャットを実装し、ユーザをログインさせる |
ads_management |
Facebook広告を管理し、ユーザの代理としてFacebook Ads APIを呼び出す |
create_event |
ユーザの代理としてイベントを作成したり、編集する |
manage_friendlists |
ユーザの友だちリストを作成したり、管理する |
manage_notifications |
お知らせを読み込み、既読にする権限。これはユーザがお知らせを読んで対応するためのもので、ユーザの行動をモデリングしたりデータマイニングするのが目的ではありません。 |
user_online_presence |
ユーザのオンライン・オフライン状態へのアクセス |
friends_online_presence |
友だちのオンライン・オフライン状態へのアクセス |
publish_checkins |
ユーザの代理としてチェックインする |
publish_stream |
ユーザの代理としてステータス投稿したり、それに対してコメントやいいね!をする。 |
rsvp_event |
ユーザの代理としてイベントへの参加意思表示をする |
Open Graph Permissions
Open Graphパーミッションを取得すると、Open Graphに対してアクション投稿をしたり、他アプリケーションに寄って投稿されたアクションを読み込むことができます。これらのパーミッションを要求するには、新しい認証ダイアログへの移行を完了する必要があります。Open Graphパーミッションは全て認証ダイアログの第1段階で要求されます。User and Friend permissionsと同様、これらのパーミッションを要求した場合には、ユーザは全てを許可しない限りアプリを利用することはできません。
User Permission | Friends Permission | Description |
---|---|---|
publish_actions |
N/A | オープングラフへBuilt-in Actions, Achievements, Scores, Custom Actions.の書き込みを許可します。Publishing Permissionsに記載されているアクティビティを投稿することも可能です。認証ダイアログでこれらのパーミッションを拒否することはできませんが、後で設定画面から取り消すことはできると覚えておいてください。パーミッションが取り消されたときに通知されたい場合は、Realtime APIを使ってpermissionsオブジェクトを購読してください。 |
user_actions.music |
friends_actions.music |
全アプリケーションから投稿されたmusic.listensアクションを取得できます。 |
user_actions.news |
friends_actions.news |
全アプリケーションから投稿されたnews.reads アクションを取得できます。 |
user_actions.video |
friends_actions.video |
全アプリケーションから投稿されたvideo.watches アクションを取得できます。 |
user_actions:APP_NAMESPACE |
friends_actions:APP_NAMESPACE |
他のアプリによって投稿されたアクションを取得します。その際、APP_NAMESPACEでアプリを指定します。awesomeappというネームスペースのアプリから投稿されたアクションを取得するには、 users_actions:awesomeappもしくは friends_actions:awesomeappを要求します。 |
user_games_activity |
friends_games_activity |
game achievementアクティビティの投稿と読み込みを許可します。 |
Page Permissions
Permission | Description |
---|---|
manage_pages |
ユーザが管理するFacebookページとアプリページのアクセストークンを取得します。/<user_id>/accountsにアクセスすることでそれぞれのアクセストークンを取得できます。これはGraph APIにのみ有効で、REST APIでは利用できません。 こちらを参照してください。 |
Access Token terminology
Facebook Platformには、User access tokens, Page access tokens, App access tokensの3種類のアクセストークンがあります。一般公開データのようにアクセストークンを必要としないデータもあれば、いずれかのアクセストークンを持っていれば良いもの、特定のアクセストークンでなければ取得できないものもあります。ドキュメント上でアクセストークンやパーミッションについて言及する場合、以下の用語を使って、必要なアクセストークンやパーミッションを説明します。
Publicly available(一般公開)
アクセストークンやパーミッションは不要です。
Any valid access_token(いずれのアクセストークンでも良い)
User, Page, Appのいずれの為のアクセストークンでも利用でき、いかなるパーミッションも不要です。ただし、有効期限を越えたアクセストークンは無効です。ただアクセストークンと記述されることもあります。
App access_token
アプリケーション用のアクセストークンが必要になる場合に、この記述を用います。認証ドキュメントで説明されている通り、APP_IDとAPP_SECRETを用いてアプリを認証することで取得できます。
User access_token
ユーザのアクセストークンが必要で、特にパーミッションが必要とされない場合にこの記述を使います。認証手順が完了したときに返されるトークンです。
Page access_token
ページを管理するのに必要となるアクセストークンです。このアクセストークンは、ユーザのアクセストークンを用いて /PAGE_ID?fields_token にアクセスした場合に取得できますが、manage_pagesパーミッションも必要となります。/USER_ID/accountsにアクセスしてユーザが管理するページ一覧とそれぞれのアクセストークンを取得することができます。
A specific permission
上記リストの中から特定のパーミッションを許可したユーザのアクセストークンです。たとえば、ユーザのチェックイン情報取得にはuser_checkinsパーミッションが必須となります。