2012-12-05 8 views
5

Ich benutze das neueste Facebook iOS SDK, 3.1.1. Ich möchte den Nutzern die Möglichkeit geben, unsere App von Facebook zu trennen. Ich rufe:Facebook von App auf iOS6 trennen?

[[FBSession activeSession] closeAndClearTokenInformation]; 

Das gut zu funktionieren scheint, aber das nächste Mal rufe ich

[FBSession openActiveSessionWithReadPermissions:allowLoginUI:completionHandler:handler]; 

es gibt mir sofort ein Token, ohne den Benutzer zu fragen, sich erneut anzumelden. Ich würde erwarten, dass der Nutzer sich erneut authentifizieren muss. Wenn auf dem Gerät kein Facebook-Konto eingerichtet ist, funktioniert es einwandfrei, da es den Webbrowser öffnet, in dem es dem Benutzer mitteilt, dass er die App bereits authentifiziert hat und die Schaltfläche "Okay" anzeigt. Aber wenn es eingerichtet ist, ruft es das Token nur im Hintergrund ab und die "Trennung" der App durch den Benutzer hat keine Auswirkungen.

Hat noch jemand dieses Problem und wie gehen Sie damit um?

Antwort

2

Es wird nicht erneut gefragt, weil das iOS SDK dem Facebook SDK ein gültiges Zugriffstoken gegeben hat. So gestaltete Apple seine Facebook- (und Twitter-) Frameworks. Du kannst nichts dagegen tun. Persönlich finde ich es großartig. Der Benutzer sollte seinem Telefon nur mitteilen müssen, dass es eine App akzeptiert.

Beachten Sie auch, dass das zwischengespeicherte Token möglicherweise abgelaufen ist. Das Facebook-SDK behandelt derzeit den Fall nicht vollständig, in dem das iOS-SDK ihm ein abgelaufenes Token gibt.

Wenn Sie testen möchten, können Sie den Facebook-Account auf Ihrem Gerät löschen und neu hinzufügen. Das sollte den zwischengespeicherten Token löschen.

+0

Danke, es widerspricht der Art, wie wir Dinge in unserer App einrichten, aber ich denke, es macht Sinn. – igalic

+0

Aus Interesse, warum kümmern Sie sich darum, es immer fragen zu lassen? Warum spielt es eine Rolle? – mattjgalloway

+0

Sorry mattjgalloway, Ich habe Ihren Kommentar nicht gesehen. Der Grund dafür ist, dass Benutzer möglicherweise zögern, der App die Genehmigung zu erteilen, wenn sie sie gerade erst verwenden. Vielleicht probieren sie Dinge aus, lösen die Facebook-Aktion aus, verweigern dann aber den Zugriff. Später, wenn sie die App mehr nutzen und anfangen, ihr zu vertrauen, erlauben sie vielleicht dem Zugriff auf ihren Facebook-Account, aber sie werden nie wieder danach fragen. – igalic

0

Verwendung:

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

mit FBSessionLoginBehaviorForcingWebView wie das Verhalten mein Problem gelöst. Es öffnet die login-modale Box und vergisst die Benutzer-Cookies.

+0

Danke, aber leider bedeutet das, dass du den eingebauten Facebook-Account komplett überspringen musst, was ich gerne vermeiden würde. In der Zwischenzeit haben wir uns entschieden, den "Abmelden" -Button wegzulassen. Wenn Sie möchten, können Sie dies immer über die Systemeinstellungen tun. – igalic