当用户撤消对应用的访问权限时Facebook共享

时间:2012-10-23 15:49:21

标签: android facebook

我正在尝试处理当用户通过Facebook设置页面撤消对我的应用的访问权限时可能会在Facebook上共享时导致的错误。

Facebook文档说:

  

但是,请注意,这并不考虑到的情况   用户可能已撤消对您的应用的访问权限,或者用户已更改   他们的密码。您需要始终注意无效   access_token并重定向用户以重新授权您的应用。对于   无效的访问令牌,返回以下错误   onComplete()方法的'response'参数:

我的代码:

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();
    }
});     

任何这些方法的问题都没有被调用,所以我无法得到用户已经撤销权限的线索,我需要让他再次授权。

相反,用户在webview中看到类似的内容。有任何想法吗? enter image description here

1 个答案:

答案 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
        }
    ]
}