情况如下:
如果我之前通过以下方式授予了我的应用程序的读取权限
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
然后,当我需要分享时,我通过以下方式请求发布权限:
LoginManager.getInstance().logInWithPublishPermissions(getActivity(), Arrays.asList("publish_actions"));
一切正常,直到我在 Web 中删除我的应用程序的权限。
如果应用程序被杀死或停止并且我需要共享,我将检查我是否仍然拥有权限:
if(userAuthorizedMyApp()){
LoginManager.getInstance().logInWithPublishPermissions(this, Arrays.asList("publish_actions"));
} else {
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
}
方法 userAuthorizedMyApp() 返回 false(accessToken null):
private boolean userAuthorizedMyApp() {
boolean authorized;
AccessToken accessToken = AccessToken.getCurrentAccessToken();
if(DEBUG) Log.v(TAG, "accessToken [" + accessToken +"]");
if(accessToken != null){
Set<String> currentPermissions = accessToken.getPermissions();
authorized = currentPermissions.contains("public_profile");
} else {
authorized = false;
}
if(DEBUG) Log.v(TAG, "userAuthorizedMyApp[" + authorized +"]");
return authorized;
}
我尝试进行通常的登录,就好像这是第一次:
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
我收到:
public void onError(FacebookException error)
onError,错误{HttpStatus:-1,errorCode:190,errorType:null,errorMessage:验证访问令牌时出错:用户尚未授权应用程序123456789123456。}
任何想法我做错了什么?