2012-06-21 6 views
5

Ich arbeite an einer Anwendung, wo ich die soziale Funktionalität von Facebook integrieren muss.Wie mit Facebook in einer Android-Anwendung verbunden bleiben

In meiner Anwendung gibt es eine Schaltfläche, die den Benutzer mit seinem Facebook-Profil verbindet. Wenn der Benutzer diese Schaltfläche drückt, öffne ich nur eine Webansicht mit der Facebook-Seite, mit der Facebook-Seite des Benutzers. Jetzt sagen wir, dass ich seine E-Mail und sein Passwort kenne und ich möchte ihn automatisch verbinden, damit er nicht jedes Mal seine E-Mail und sein Passwort eingeben muss. Ich habe versucht, es zu lösen werfen meine nächste question, aber wie Sie ohne Erfolg sehen können.

Ich habe versucht, auch Cookies mit CookieSyncManager, CookieManager und manuelle Behandlung.

Ich denke, dass ich es lösen kann, indem ich die URL ändere, die ich an das webView sende, aber ich weiß nicht, welche URL. (Versuchte http://www.facebook.com/connect/connect_to_external_page_widget_loggedin.php und http://www.facebook.com/plugins/login.php und verketten dann die URL des Benutzers Facebook-Seite, zum Beispiel http://www.facebook.com/UserProfile)

Ich schätze wirklich jede Hilfe!

Danke.

+0

Sie sind das Android SDK? https://developers.facebook.com/docs/mobile/android/sso/ –

+0

@Ahmed Nuaman Ja, ich benutze das Facebook SDK und versuchte auch, Single Sign-On zu verwenden. Sehen Sie sich meine nächste [Frage] an (http://stackoverflow.com/questions/11117516/move-to-the-facebook-application-page-after-authenticate-through-single-sign-on) –

Antwort

2

ist es eine Möglichkeit, das SDK-Authentifizierung zu verwenden, wie hier diskutiert: How to disable Facebook single sign on for android - Facebook-android-sdk.
Aber ich denke, dass es nur zu einer schlechten Benutzererfahrung führt, da der Benutzer seine E-Mail/Passwort eingeben muss, was keine lustige Aufgabe mit den meisten mobilen Geräten zu tun ist.

Wenn der Benutzer die Facebook-Anwendung (Katana) installiert hat (was die Verwendung von SSO bedeutet), dann sollte es möglich sein, sie mit dem Benutzerprofil zu öffnen, indem eine Absicht verwendet wird.
Ich habe es noch nie zuvor getan, aber von diesen beiden Themen:
launch facebook app from other app
und
Open a facebook page from android app
es sieht aus wie Sie so etwas wie tun:

Intent intent = new Intent(Intent.ACTION_VIEW); 
intent.setClassName("com.facebook.katana", "com.facebook.katana.ProfileTabHostActivity"); 
this.startActivity(intent); 
0

Für die Verbindung zu Facebook haben Sie zuerst Oauth gelernt. Oauth ist eine einmalige Bestätigung, um auf Facebook-Daten zuzugreifen. Das Passwort muss nicht jedes Mal eingegeben werden. Gehen Sie durch diese documentation.

Und das document auch nützlich für Sie.

+0

Ich bin mit single sign on, meinst du das in Oauth? –

+0

Zuerst müssen Sie OAuth vollständig lernen. OAuth ist ein einmaliger Anmeldeprozess, um die Facebook-Daten von dem jeweiligen Nutzer zu erhalten. – Akilan

+0

Ich brauche keine Benutzerdaten, ich muss nur einen Browser mit seiner Facebook-Seite öffnen. Ich benutze bereits Single Sign On, aber das Problem ist, dass ich ihn nicht auf seine Profilseite umleiten kann. –

4

Sie können den Benutzer nicht manuell bei Facebook anmelden. Das ist der ganze Sinn von oAuth, der Prozess sollte für Ihre App transparent sein und wenn der Benutzer mit der Authentifizierung fertig ist, erhält Ihre App nur einen AccessToken.

Von diesem Punkt an kann ein AccessToken fast für immer bei Ihnen am Leben bleiben.

Es wird ungültig, wenn:

  1. Session

    abläuft Dies wird durch das Hinzufügen eines Anrufs zu Ihrem onResume() gelöst werden kann, vorausgesetzt, Sie den Facebook-Android SDK für die Authentifizierung/Integration von Facebook verwenden . Wenn dieser Anruf erfolgreich ist, ist Ihr Token für 60 Tage gültig.

    public void onResume() {  
        super.onResume(); 
        facebook.extendAccessTokenIfNeeded(this, null); 
    } 
    
  2. Benutzer sein Passwort ändert

  3. Benutzer de-autorisiert Ihre App

  4. Benutzer abmeldet Face

    Sie können nichts über diese drei tun Fälle! Ihr Token wird ungültig gemacht und Sie müssen den Benutzer bitten, sich erneut mit dem normalen Ablauf zu authentifizieren.anstelle des SSO

Follow this tutorial to integrate Facebook inside your Android app

+0

Danke für Ihre Antwort. Ich habe es genau wie in diesem Tutorial gemacht und erhalte das Access Token. Meine Frage ist, ob ich den Nutzer nach meiner Wahl auf eine Facebook-Seite umleiten kann, nachdem er sich bereits mit dem Zugriffstoken authentifiziert hat - gültiger Token natürlich. –

+0

Ist es eine Möglichkeit, SSO zu deaktivieren? Dies wäre eine Lösung. Ansonsten ist dies nicht machbar, da (wenn ich mich richtig erinnere) die Facebook App kein WebView für die Anmeldung benötigt. –

+0

und wenn ich meine Facebook-Seite nur auf andere Weise öffnen möchte, nein in WebView? Sagen wir Facebook App oder anders. Um es noch einmal klarzustellen, ich habe das Zugriffs-Token und er ist gültig. Ich möchte eine Facebook-Seite mit der Authentifizierung des Benutzers öffnen, damit er Aktionen als registrierter Benutzer durchführen kann und nicht das Passwort und die E-Mail-Adresse erneut eingeben muss. –

Verwandte Themen