答えのあるこの質問を見つけましたが、それ以来Facebookがトークンの形式を変更したため、次のようになりました。
AAACEdEose0cBACgUMGMCRi9qVbqO3u7mdATQzg[more funny letters]ig8b3uss9WrhGZBYjr20rnJu263BAZDZD
要するに、あなたはそれから何も推測することはできません。また、アクセストークンデバッガーも見つかりました。これは、トークンを貼り付けた場合に探している情報を表示します。これは便利ですが、プログラムでそれを行うのに役立ちません。
ポイントは、誰かがユーザーのトークンを取得した場合、それを使用してグラフにアクセスできることです。これは、私のアプリケーションで行うことです。ユーザーが私のアプリケーションによって発行されたトークンを転送していることを確認したいのですが、別ではありません。
私のアプリケーションフローは次のとおりです。
- Facebookからアクセストークンを取得します(ここで説明されているように、サーバー側のフロー(iPhoneとAndroidも使用されますが、正しく思い出せば同様のフローがあります))
[デバイス] <-> [facebook ] - そのアクセストークンを使用すると、デバイスはトークン
[device] <-> [Jonathan's application]を使用してアプリケーションサーバーにアクセス
します。サーバーでアクセストークンをユーザーに添付し、それを使用してアプリケーション内のそのユーザーにアクセス許可を付与します。(Facebook接続を使用してユーザーを認証します)
私のアプリケーションは保護されており、Facebookに関係なく、行われたアクセスも認証されますが、このフローでは、私が特定した弱いリンクは、取得したアクセストークンがアプリケーション用に署名されていることを確認できないことです-オフラインで使用するためにトークンをキャッシュするため、100%確実にしたいのでそれは好きではありませんそれらは私のアプリケーション用であり、私の権限があります。
したがって、取得したトークンがアプリケーションに関連していることを認証する(最良の)方法は何でしょうか(ユーザーとの関係では、トークンを使用して/ meにアクセスし、このトークンの対象となるユーザーを確認します)
トークンを復号化する必要はありません(ある種のAESだと思います)。トークンがアプリケーションIDと一致することを通知するエンドポイントを探しています。
(編集:重要な場合は、C#SDKを使用します。しかし、その情報を提供するためのグラフ/REST呼び出しも同様に優れています:))