Facebook APIのv1.0がv2.0(現在の最新はv2.2)に上がって、色々変更があったが、その中で、ユーザーから取得許可を求める多くの項目についてFacebookの審査が必要になったのはご存知だろうか?
ここでは、この審査についての基本情報をお伝えする。
ちなみにv1.0は2015年の4月いっぱいで全面廃止され使えなくなるので、まだ対応が済んでいない人は、あと4ヶ月で対応しないといけない。
モバイルアプリなどにFacebook連携を組み込んでいる場合はAppleの審査や、ユーザーが新しいバージョンを使いはじめるののタイムラグなどでより早くから対応しないといけないので、もう既にかなりギリギリの状態になっているかもしれない。
現在あるサービスを見ていると、まだ対応して無さそうなのが多かったので、詳細はともかくFacebookを使っているサービスを作っている人は是非自分は大丈夫か確認してみて欲しい。
審査が必要な項目、必要ない項目
Facebookのレビューがいらないのは以下3つの基本的なパーミッションのみ。
- public_profile
- user_friends
この内、public_profileはデフォルトで取得できる。
v1.0ではデフォルトで取得できていたのは、basic_infoというものだった。
これは、public_profileとuser_friendsの内容を両方含んだものだった。
これがv2.0への移行で分割され、user_friendsの方は明示的に取得しないといけくなった。
(ただし、v1.0のuser_friendsの内容とv2.0のuser_friendsの内容は異なっており、前者は友達全員、後者はアプリを使っている友達全員となっている)
この他のものについて何らかの情報を取得するアプリは全てFacebookレビューを受けなければいけなくなった。
その他パーミッションの主要な変化
まず、どのパーミッションも個別にオン・オフを選択が可能になった。つまり、そのパーミッションがオンであること前提のコードは書けなくなった。
その他大きい変更としては、友達のプロフィール情報(写真や学歴、誕生日)に関してはそもそも取得すること自体ができなくなった。friends_xxxというパーミッションが軒並み削除されている。
現状、入手できる友達情報(user_friends)はその友達の以下の情報のみである。
- 名前
- uid (Facebookのページへリンクできる)
実は最も大きいのは、この際に既に同じアプリを使用している友達の情報しか取得できないように変更されたことだ。
また、このuidもこれまでのFacebookで一意なIDではなく、アプリごとに個別のIDに変更されている。ただし、新しいuidを元にFacebookページにアクセスすることはリダイレクトを介して出来るようになっている。(移行の前からの登録ユーザーに関しては新しいアプリ固有のUIDではなく、元々のUIDがアプリ固有のUIDとして設定され返ってくる仕様になっている。)
その他、publish_streamをpublish_actionにしないといけなくなったなどの変更もある。その他、詳細は以下の変更ログとバージョンについての説明を参照。
https://developers.facebook.com/docs/apps/changelog
https://developers.facebook.com/docs/apps/versions
JavascriptSDKの変更の話
パーミッションとは少し関係ないけれど、JavascriptSDKの話もFacebook APIを使っている多分殆どの人に関係するのでついでに書いておく。
JavascriptSDKが
https://connect.facebook.net/ja_JP/all.js
から
https://connect.facebook.net/ja_JP/sdk.js
に変わった。
これはv1.0が使えなくなるまでに変えないといけない。(今のところFacebookはそう言っている。実際4月に入って動かなくなるサービスがいっぱい出たらまたかわるかもしれないけど)
ja_JPのところはロケールによって、en_USとか適宜変えること。
この時、FB.initをする際にversionを指定する必要があり、version: "v2.0"
のように明示的に指定する。
さらにFB.initのデフォルトのフラグの値がほとんどtrueからfalseに変わっているので気をつけること。
審査の際に気をつけること
審査の際には
- アプリの概要
- プライバシーポリシー
- スクリーンショット最低4枚
が必須条件になっている。
ココらへんの話についての日本語情報は http://snowadays.jp/2014/06/2790 が詳しい。
その他、審査時には、Facebookのポリシーを守っていることも見られる。
このポリシーも、もちろん後出しポリシーなので、例えば、
- Facebook投稿の際に、デフォルトの投稿メッセージを入れておく
といったことは、既に多くのFacebook連携しているサービスが行っていると思うが、こういったものが全て禁止となっている。
これら条件をすべてクリアした上で、各パーミッションについて
- それを取得することが、ユーザーにとってどんなメリットがあるか
- それを取得するまでの細かな手順
を書くことで審査される。
この時に必要のないタイミングで必要のないものを取得するとリジェクトされ、必要なタイミングで取得することを要求される。
ただし、最初にとるのが全面禁止なわけではなく、最初のサインアップ時にとるのが最もふさわしいと認められた場合は可能になる。
最後に
実際、ここで書いた内容はFacebookのAPIの変更の一部で全然網羅性はない。
ただ、皆も気づくことが大切なので、Facebook連携サービスを作っている人は
を見に行ってみることをオススメします。
v1.0が使えるのは
2015/4/30
までです。