2012-12-05 16 views
5

Używam najnowszego pakietu SDK na Facebooku iOS 3.1.1. Chcę dać użytkownikom opcję "odłączenia" naszej aplikacji od Facebooka. Dzwonię:Odłączanie Facebooka od aplikacji na iOS6?

[[FBSession activeSession] closeAndClearTokenInformation]; 

To wydaje się działać prawidłowo, ale następnym razem zadzwonię

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler]; 

natychmiast daje mi znak, bez pytania użytkownika o ponowne zalogowanie się. Spodziewam się, że ponownie poprosi użytkownika o uwierzytelnienie. Jeśli na urządzeniu nie ma skonfigurowanego konta Facebook, działa ono poprawnie, ponieważ otwiera przeglądarkę internetową, w której informuje użytkownika, który już uwierzytelnił aplikację, i pokazuje przycisk "Okay". Ale jeśli jest skonfigurowany, po cichu odzyskuje token, więc "odłączenie" aplikacji przez użytkownika nie działa.

Czy ktoś inny ma ten problem i jak sobie z nim radzisz?

Odpowiedz

2

Nie pyta ponownie, ponieważ pakiet SDK iOS podał pakiet SDK Facebooka jako ważny token dostępu. Właśnie tak Apple zaprojektował swoje frameworki na Facebooku (i Twitterze). Nic nie możesz z tym zrobić. Osobiście uważam, że jest świetny. Użytkownik powinien tylko powiedzieć telefonowi, że akceptuje aplikację.

Należy również pamiętać, że buforowany znacznik wygasł. Obecnie pakiet SDK serwisu Facebook nie obsługuje w pełni przypadku, w którym pakiet SDK systemu iOS nadaje mu wygasły token.

Jeśli chcesz przetestować, możesz usunąć konto Facebook na swoim urządzeniu i ponownie je dodać. To powinno wyczyścić buforowany znacznik.

+0

Dzięki, że jest to sprzeczne ze sposobem, w jaki konfigurujemy rzeczy w naszej aplikacji, ale myślę, że to ma sens. – igalic

+0

Ciekawe, dlaczego zależy ci na tym, aby zawsze o to pytać? Dlaczego to ma znaczenie? – mattjgalloway

+0

Niestety, nie widziałem Twojego komentarza, mattjgalloway. Powodem jest to, że użytkownicy mogą wahać się, czy przyznać uprawnienia do aplikacji, gdy tylko zaczną jej używać. Być może próbują rzeczy, uruchamiają akcję na Facebooku, ale odmawiają dostępu. Później, gdy będą częściej korzystać z aplikacji i zaczną jej ufać, być może pozwolą jej na dostęp do swojego konta na Facebooku, ale nigdy więcej nie będą o to pytać. – igalic

0

Zastosowanie:

- (void)openWithBehavior:(FBSessionLoginBehavior)behavior completionHandler:(FBSessionStateHandler)handler; 

z FBSessionLoginBehaviorForcingWebView jako zachowanie rozwiązać mój problem. Otwiera okno modalności logowania i zapomina o ciasteczkach użytkownika.

+0

Dzięki, ale niestety oznacza to, że musisz całkowicie pominąć wbudowane konto na Facebooku, którego chciałbym uniknąć. W międzyczasie postanowiliśmy porzucić przycisk "wylogowania". Jeśli chcesz, zawsze możesz to zrobić z poziomu ustawień systemu. – igalic

Powiązane problemy