Ето случая:
Ако преди това съм предоставил разрешения за четене на моето приложение чрез
LoginManager.getInstance().logInWithReadPermissions(this, Arrays.asList("email"));
След това, когато трябва да споделя, искам разрешения за публикуване чрез:
LoginManager.getInstance().logInWithPublishPermissions(getActivity(), Arrays.asList("publish_actions"));
Всичко работи добре, докато не премахнах разрешенията за моето приложение в мрежата.
Ако приложението е било унищожено или спряно и трябва да споделя, ще проверя дали все още имам разрешенията:
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.}
Някакви идеи какво правя погрешно?