5

認証情報として facebook アクセス トークンのみを使用して、ユーザーがバックエンドにアクセスできるようにします (https 経由で REST API を使用し、json 応答を使用)。そのため、2 つのことを行います。

  1. アクセス トークンを確認し、ユーザーの ID を見つけます。これは、https://graph.facebook.com/me?access_token=TOKENを呼び出すだけです。

  2. このアクセス トークンが Facebook アプリに属していることを確認してください。https://graph.facebook.com/app?access_token=TOKENを呼び出すことができます が、これは文書化されていない機能のようです (また、かなり遅い場合もあります)。

これが実際にそこにとどまる可能性が高い標準的な方法であるかどうか、誰か教えてもらえますか? または、私たちがやりたいことを行う別の方法があります: ユーザーのアクセス トークンが有効であり、Facebook アプリからのものであることを確認します。

me/permissions と me?fields=installed を呼び出すことができますが、これらのどちらも、チェックしている Facebook アプリを教えてくれないようです。

4

3 に答える 3

3

ドキュメント(クライアント側またはサーバー側)で説明されているように、認証フローを実装する必要があります。基本的に、アプリでユーザーを認証して新しいアクセス トークンを取得し、そのトークンをサーバーへのリクエストに使用します。このようにして、トークンがアプリに「属している」ことを確認できます。手順:

  1. 選択した Facebook SDK をアプリ ID で初期化します。
  2. ユーザーがアプリを既に承認しているかどうかを確認します。
  3. ユーザーがすでにアプリを承認している場合は、そのユーザーの Facebook ユーザー ID とトークン (アプリに「属している」) を取得します。そうでない場合は、ユーザーを認証してトークンを取得します。

ドキュメントには、サンプル コードと多くの詳細が記載されています。

アップデート:

あなたが言及した機能は、ここに文書化されています ( 2. Make requests to the API までスクロールダウンします):

アプリ アクセス トークンを使用すると、ユーザーではなくアプリケーションとして要求を行うことができます。アプリケーションの詳細を取得するには、 https ://graph.facebook.com/app?access_token=APP_ACCESS_TOKEN で HTTP GET を実行します。

したがって、機能はそのままになる可能性があります。

于 2012-08-14T19:00:32.463 に答える
2

すべてのリクエストで access_token の代わりに signed_request を渡すことができます。アプリケーションの秘密鍵に基づいてパラメータ signed_request を確認すると、簡単に確認できます。署名付きリクエストに関するドキュメントを読んでください。

于 2012-08-14T16:24:40.077 に答える