今日のFacebook開発者ブログ

http://developers.facebook.com/blogからの最新情報。
テストユーザーのパスワードをGraph APIを用いてリセットできるようになった。
パスワードはテストユーザーが作成されたときにしか、返されないので、
パスワードを記録するか、必要となるたびにリセットして使用する。

テストユーザーを作成し、パスワードをリセットするPHPコードの例が記されている。

"https://graph.facebook.com/oauth/access_token?" .
"client_id=" . $app_id .
"&client_secret=" . $app_secret .
"&grant_type=client_credentials"
というURLにアクセスすることで、アプリケーションに対するアクセストークンを取得する。

"https://graph.facebook.com/" . $app_id
. "/accounts/test-users?installed=true"
. "&permissions=read_stream&method=post&"
. $app_access_token;

上で取得したアクセストークンを用いて、テストユーザーを作成する。

"https://graph.facebook.com/" . $obj->{'id'}
. "?password=" . $new_password . "&method=post&" . $app_access_token;

$objはテストユーザー作成のレスポンスとして返ってきたJSONをデコードしたもの。
$new_passwordは任意のパスワードを自分で設定することができる。

アプリケーションで作成できるテストユーザーの数も500に増えた。

商品購入の直前などでは、ユーザーにパスワードを再入力させたい時がある。
https://www.facebook.com/dialog/oauthhttps://graph.facebook.com/oauth/authorize
での認証リクエストに以下のパラメータが追加された。

auth_type:必要となる認証機能を以下のオプションから指定する。
  https:セキュアなクッキーの存在を確認し、存在しなければ再認証を要求する
  reauthenticate:無条件で再認証を要求する
auth_nonce:リプレー保護を行うために、アプリケーションが指定した英数字のナンスを指定する。このパラメータはオプションであるが、auth_typeにreauthenticateを指定した場合は特に、指定することを推奨する。

フォーム上のボタンを押したときに、再認証のダイアログを出すPHPのサンプルコードが示されている。