2012-10-23 44 views
0

我正試圖處理當用戶通過Facebook設置頁面撤銷對我的應用程序的訪問時可能會導致共享到Facebook的錯誤。當用戶撤銷對應用程序的訪問權時,Facebook共享

Facebook的文檔說:

但是,請注意,這並不佔其中 用戶可能已撤銷訪問你的應用程序,或者如果用戶已經改變 其密碼的情況。您需要始終注意無效的 access_token並重定向用戶重新授權您的應用。對於 無效訪問令牌,在的onComplete()方法的 「響應」參數返回以下錯誤:

我的代碼:

facebook.dialog(activity, "feed", params, new DialogListener() 
{ 

    @Override 
    public void onFacebookError(FacebookError e) 
    { 
     Log.printMethod(); 
     showErrorToast(activity, e); 
    } 

    @Override 
    public void onError(DialogError e) 
    { 
     Log.printMethod(); 
     showErrorToast(activity, e); 
    } 

    @Override 
    public void onComplete(Bundle values) 
    { 
     Log.printMethod(); 
    } 

    @Override 
    public void onCancel() 
    { 
     Log.printMethod(); 
    } 
});  

與該問題的任何這些方法的不要叫,所以我不能得知用戶已經撤銷權限的線索,我需要讓他再次授權。

相反,用戶在web視圖中看到類似的內容。有任何想法嗎? enter image description here

+0

當用戶已經完成(或中止)這些方法被調用的登錄流程,你的應用程序被稱爲回。截圖顯示了什麼? - 這是一個用戶在他們撤銷之前的權限後再次嘗試登錄嗎? (我問,因爲這看起來更像是一個錯誤配置的應用程序或登錄電話) –

回答

1

檢查用戶的權限第一: https://developers.facebook.com/docs/facebook-login/permissions/#checking

REST:

https://graph.facebook.com/USER_ID/permissions?access_token=APP_TOKEN https://graph.facebook.com/me/permissions?access_token=USER_TOKEN

JS:

FB.api('/me/permissions', function(response) { 
    var perms = response.data[0]; 
    if ('publish_actions' in perms && perms.publish_actions === 1) { 
     // send 
    } 
} 

迴應示例:

{ 
    "data": [ 
     { 
      "installed": 1, 
      "basic_info": 1, 
      "email": 1, 
      "publish_actions": 1, 
      "user_friends": 1 
     } 
    ] 
} 
+0

這絕對不是Java,但謝謝你的線索。 –

相關問題