ユーザー アクセス トークンのコードを交換する
ユーザーがアプリを承認したら、サーバー側のリクエストを作成して、上記で返されたコードをユーザー アクセス トークンと交換する必要があります。
https://graph.facebook.com/oauth/access_token?
client_id=YOUR_APP_ID
&redirect_uri=YOUR_REDIRECT_URI
&client_secret=YOUR_APP_SECRET
&code=CODE_GENERATED_BY_FACEBOOK
client_secret パラメーターは、アプリの設定に示されているように、アプリ シークレットである必要があります。このリクエストに対するレスポンスの本文は、次の形式の URL エンコード文字列になります。
access_token=USER_ACESS_TOKEN&expires=NUMBER_OF_SECONDS_UNTIL_TOKEN_EXPIRES
この文字列を解析し、access_token 値を使用して Graph API へのリクエストを行う必要があります。また、ユーザーを再認証せずに API にさらにリクエストを行うために、アクセス トークンをデータベースに永続化する必要があります。
アクセス トークンの有効期限が切れると、トークンは無効になり、API へのリクエストで使用できなくなります。新しいユーザー アクセス トークンを取得するには、ユーザーをこのフローに再度通す必要があります。ただし、ユーザーがアプリの認証を解除しておらず、ユーザーがアプリケーションに既に許可している以上のアクセス許可を求めていない場合、ダイアログは表示されず、ユーザーは新しいコードを使用して、redirect_uri に透過的にリダイレクトされます。新しいユーザー アクセス トークンと交換できます。
コードをユーザー アクセス トークンに交換する際に問題が発生した場合、承認サーバーは HTTP 400 を発行し、応答の本文で JSON オブジェクトとしてエラーを返します。
{
"error": {
"type": "OAuthException",
"message": "Error validating verification code."
}
}
詳細については、チェックアウトhttp://developers.facebook.com/docs/authentication/server-side/を参照してください。
Graph API へのリクエストの作成
有効なユーザー アクセス トークンがあれば、Graph API からデータの読み取りと書き込みを要求できます。一般的な最初の要求は、アプリを認証したばかりのユーザーの基本情報 (ID と名前を含む) を取得することです。
https://graph.facebook.com/me?access_token=YOUR_USER_ACCESS_TOKEN