2012-06-21 30 views
4

假設我的應用程序希望代表第三方的用戶請求權限A和B.處理Facebook API權限跳過/撤銷每個OAuth 2.0 RFC

根據OAuth 2.0 RFC,第三方不需要授予這些權限。但是,如果返回的權限與我的應用程序請求的權限不相同,則授予的範圍將在第三方響應中返回。

通過閱讀Facebook文檔並檢查Facebook返回的響應,當我模擬跳過/拒絕流時,看起來授予的範圍不會返回,並且我的應用程序需要進行api後續調用以查看哪些權限是理所當然的。

這是正確的嗎?

回答

6

簡答:是的,你這樣做。

較長的答案: 進行API調用來https://graph.facebook.com/me/permissions?access_token=OAUTH_ACCESS_TOKEN_HERE - 在PHP或JS SDK可以簡化這個剛剛/me/permissions的SDK將包裹服務器和訪問令牌爲您服務。

這顯示當前由該用戶授予應用程序的所有領域,例如輸出爲:

{ 
    "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 
    } 
    ] 
} 

由於用戶可以追溯移除先前授予的權限,你需要從時間做這個時間反正,因爲即使您在特定權限請求中授予的範圍進行了回調,用戶也可以在幾乎立即撤銷其中的某些/全部。

+0

謝謝......希望它符合RFC,但我只是失去了一些東西=) – Dirk