2
  1. 人々に自分の Facebook アカウントで私のサイトにログインしてもらいたい.
  2. 彼らの Facebook プロフィールからいくつかの情報を取得し、それを私のサイトのデータベースに追加する必要があります

このURLにリダイレクトするOAuth 2.0メソッドを使用してみました

https://www.facebook.com/dialog/oauth?
    client_id=YOUR_APP_ID
   &redirect_uri=YOUR_REDIRECT_URI
   &scope=COMMA_SEPARATED_LIST_OF_PERMISSION_NAMES
   &state=SOME_ARBITRARY_BUT_UNIQUE_STRING

ユーザーの認証に成功しましたが、ここで主な問題が発生しました。応答として送信されるデータにアクセスするにはどうすればよいですか?GET名前付きの変数codeと長いテキストだけが表示されます。使用可能なデータに変換するにはどうすればよいですか?

私は自分のウェブサイトにphpを使用しています

4

4 に答える 4

4

ユーザー アクセス トークンのコードを交換する

ユーザーがアプリを承認したら、サーバー側のリクエストを作成して、上記で返されたコードをユーザー アクセス トークンと交換する必要があります。

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
于 2012-06-13T14:16:28.440 に答える
1

Facebook から phpの公式 SDKが提供されています。これにより、生活が楽になります。

このサンプルコードを確認してください

于 2012-06-13T14:14:20.357 に答える