2

少し混乱しました。誰かが私にそれを明確にしてくれたらうれしいです -

次の方法で取得したトークンの違いは何ですか:

  1. この方法でトークンを取得します。https://graph.facebook.com/oauth/access_token? client_id=YOUR_APP_ID &client_secret=YOUR_APP_SECRET &grant_type=client_credentials
  2. Javascript SDK を使用したトークンの取得と比較 -FB.getAuthResponse()['accessToken']

どちらも見た目が異なり、どちらを使用すればよいかわかりません。

ありがとう!

4

1 に答える 1

2

最初の方法は、Facebook のドキュメントのアプリとしてログインの下に記載されています。

アプリとしてログインすると、ユーザーではなくアプリに代わって Facebook API にリクエストを送信できるアクセス トークンを取得できます。これは、アプリのパラメーターを変更したり、テスト ユーザーを作成および管理したり、アプリケーションの分析情報を読み取ったりする場合などに便利です。アプリ アクセス トークンを使用して、アプリケーションに公開許可を付与したユーザーに代わって Facebook にコンテンツを公開することもできます。

ドキュメントに記載されているように、このメソッドはサーバー側のコーディングでのみ使用する必要があります。サーバー側のコーディングでは、(クライアント側のコードと比較して) 悪意のある攻撃者からコードをより安全に保護できます。覚えておいてください:アプリ シークレットは誰とも共有しないことが重要です。アプリ シークレットは、アプリケーション アカウントのパスワードと考えてください。他の人がアプリ シークレットを取得した場合、アプリケーションが危険にさらされる可能性があります。このメソッドは、OAuth 2.0のClient Credential Grantに対応します。

2 番目の方法は、サーバー側のコーディングがないクライアント側のアプリ用です。これにより、アプリは承認されたユーザーに代わって API 呼び出しを行うことができます。SDK のカバーの下では、このメソッドは OAuth 2.0 のImplicit Grantに対応します。

この 2 つの方法があるのは、facebook が OAuth 2.0 を採用しているためです。

2 つの方法の使用法と違いを完全に理解するために、RFC 6749 - The OAuth 2.0 Authorization Frameworkを読むことを強くお勧めします。テキストが読みにくい場合は、 Evernote Clearly on Google Chromeなどの読みやすいアプリを使用できます。OAuth 2.0 の簡略化されたわかりやすいバージョンについては、Aaron Parecki によるOAuth 2 Simplifiedを参照してください。

于 2013-01-29T11:49:34.240 に答える