HybridAuthの内部で、Facebookのscopeは
email, user_about_me, user_birthday, user_hometown, user_website, offline_access, read_stream, publish_stream, read_friendlists
がデフォルトに設定されています。scopeの設定を空にすると上記のパーミッションが使われるので、ログインに使いたいだけの場合、不要な許可をユーザーに求めることになります。
詳細なパーミッションの説明は
http://developers.facebook.com/docs/authentication/permissions/
に書かれています。
今回はFacebookをログインするためだけに使います。ここまでの情報は不要なので、Basic Information(基本データ)だけにします。基本的にはscopeを空にすれば良いはずです。
ところが、HybridAuthの内部で文字列をemptyで判断しているため、空にするとデフォルトに上書きされてしまいます。
if( isset( $this->config["scope"] ) && ! empty( $this->config["scope"] ) ){ $this->scope = $this->config["scope"]; }
対策としては、scopeに空白をひとついれておけばOKです。
"scope" => " ",
前回の「Symfony 1.4でHybridAuthを使ってtwitter/facebookログインを実装する」でymlにした場合は、
scope: " "
としておきます。
これで「このアプリが受け取る情報」の欄を減らすことができました。
ちなみに、一度許可したアプリをFacebook上から削除したい場合は
http://www.facebook.com/settings?tab=applications
から削除できます。
タグ: Facebook, HybridAuth, symfony