Имам проблем, докато се опитвам да извлека допълнително разрешение „publish_action“.
Предполагам, че потребителят вече е влязъл през facebook, така че са предоставени основни разрешения. Тогава имам този код (от моя фрагмент):
List<String> permissionsRequested = Arrays.asList("publish_actions");
List<String> permissionsActual = session.getPermissions();
if (!isSubsetOf(permissionsRequested, permissionsActual)) {
pendingPublishReauthorization = true;
Session.NewPermissionsRequest newPermissionsRequest = new Session
.NewPermissionsRequest(this, permissionsRequested);
session.requestNewPublishPermissions(newPermissionsRequest);
return;
}
Виждайки от отстраняването на грешки, след като потребителят даде разрешение, контролът отива към onActivityResult, където според документите на facebook имам
super.onActivityResult(requestCode, resultCode, data);
facebookUiHelper.onActivityResult(requestCode, resultCode, data);
uiHelper също се използва правилно (според документите) във всички тези методи onResume&onDestroy.
В onCreate имам
super.onCreate(savedInstanceState);
facebookUiHelper = new UiLifecycleHelper(getActivity(), fbSessionCallback);
facebookUiHelper.onCreate(savedInstanceState);
където fbSessionCallback е заменил call()
метод, който извиква моя onFbSessionRestore()
:
if (pendingPublishReauthorization &&
state.equals(SessionState.OPENED_TOKEN_UPDATED)) {
pendingPublishReauthorization = false;
// do things with my new session, updated with granted permission. e.g. post to fb.
}
Проблемът е в това
- onActivityResult се изпълнява, но след това никога не се извиква обратно извикване, така че отменения call() няма да продължи, както и onFbSessionCallback.
- Ако се опитам да публикувам отново (започна нещата от нулата) след това - отново получава сесия без предоставено разрешение, опитва се да го поиска и след това излиза изключение във Facebook за чакащо разрешение за newPublishRequest бла-бла
Може ли някой да помогне за конфигуриране на работния процес от onActivityResult и по-късно? Чета документи във Facebook и съм склонен да ги обвинявам, че са написани зле. Може би просто аз съм твърде глупава... :(((