4

私のアプリケーションが、サードパーティのユーザーに代わってアクセス許可 A と B を要求したいとします。

OAuth 2.0 RFC に従って、サード パーティはこれらのアクセス許可を付与する必要はありません。ただし、返されたアクセス許可がアプリケーションが要求したものと同等でない場合、付与されたスコープがサード パーティの応答で返されます。

Facebook のドキュメントを読んで、スキップ/拒否フローをシミュレートしたときに Facebook から返された応答を調べたところ、許可されたスコープが返されず、どのようなアクセス許可が付与されたかを確認するために、アプリケーションでフォローアップ API 呼び出しを行う必要があるようです。

これは正しいです?

4

1 に答える 1

6

簡単な答え: はい、そうです。

より長い答え: への API 呼び出しを行います。PHP または JS SDKでは、SDK がサーバーとアクセス トークンをラップするのとhttps://graph.facebook.com/me/permissions?access_token=OAUTH_ACCESS_TOKEN_HERE 同じように、これを単純化できます。/me/permissions

これは、そのユーザーによってアプリケーションに現在付与されているすべてのスコープを示しています。出力例は次のとおりです。

{
  "data": [
    {
      "installed": 1, 
      "manage_friendlists": 1, 
      "status_update": 1, 
      "photo_upload": 1, 
      "video_upload": 1, 
      "create_event": 1, 
      "create_note": 1, 
      "share_item": 1, 
      "publish_stream": 1, 
      "publish_actions": 1, 
      "user_about_me": 1, 
      "friends_activities": 1
    }
  ]
}

ユーザーは以前に付与されたアクセス許可をさかのぼって削除できるため、特定のアクセス許可要求でスコープが付与されたコールバックがあったとしても、ユーザーはそれらの一部またはすべてをほとんど取り消す可能性があるため、とにかく時々これを行う必要があります。その直後。

于 2012-06-21T12:37:14.003 に答える