Facebook Öffnen Sie Graph ohne einen Browser

9

Für ein Middleware-System mit Internet (das in einer Set-Top-Box funktioniert) möchte ich ein primitive Facebook-Schnittstelle, auf der Benutzer ihre Benutzernamen und ihr Passwort eingeben können und ihre neuesten Benachrichtigungen, Nachrichten und andere Gelegenheitsinhalte auf dem Fernsehbildschirm anzeigen können, indem sie die neuesten Facebook Graph API .

Dieses Middleware-Programm verwendet Java ME, um Programme auszuführen (wie diese einfache Facebook-App), und es kann eine Verbindung zum Internet herstellen, es hat jedoch keinen echten Webbrowser. Ohne Browser kann er eine Verbindung zu einer beliebigen URL herstellen, um die JSON-Antwort abzurufen, aber ich bin mir nicht sicher, wie ich eine Authentifizierung ohne einen echten Browser erreichen kann.

Ist unter diesen Umständen eine Facebook-Authentifizierung möglich? Wenn Sie das denken, welchen Ansatz würden Sie vorschlagen?

Danke

    
Hellnar 03.05.2010, 19:35
quelle

5 Antworten

3

Facebook bietet vertrauenswürdigen Partnern eine private Autorisierungs-API, um ein OAuth 2-Token von einem Nutzernamen / Passwort zu erhalten.

Ein komplizierterer Ansatz wäre, etwas Ähnliches zu tun, wie Netflix ein Gerät anmeldet:

  1. Gerät ruft den Server auf, um einen Code
  2. zu erhalten
  3. Gerät zeigt Code auf dem Bildschirm an und weist den Benutzer an, auf dem Server zur URL zu gehen und Code
  4. einzugeben Der Server
  5. leitet den Benutzer zu Facebook um und erhält das OAuth-Token, der Benutzer wird aufgefordert, zum Gerät zurückzukehren
  6. Gerät ruft den Server mit Code auf und erhält das OAuth-Token
  7. Gerät kann jetzt direkt im Auftrag des Benutzers Anrufe tätigen
Dick Hardt 23.08.2011 15:23
quelle
0

Laut dieser Dokumentation zu " Desktop Application Authentication " Ich glaube nicht, dass Ihr gewünschtes Ergebnis möglich ist:

  

Die OAuth-Implementierung von Facebook enthält keine explizite Desktop-Anwendungsunterstützung. Wenn Ihre Desktopanwendung jedoch einen Webbrowser einbetten kann, können Sie Ihrer Anwendung Facebook-Unterstützung hinzufügen, indem Sie denselben OAuth-Benutzer-Agent-Flow verwenden, der von JavaScript-Clients verwendet wird.

Es ist jedoch eindeutig möglich, dass bestimmte Anbieter dies tun, da die Xbox 360 Facebook-Anwendung von Microsoft genau das tut, was Sie vorschlagen. Es würde mich interessieren zu sehen, ob irgendjemand API dafür ausgegraben hat, dass Facebook in ihrer offensichtlichsten Dokumentation nicht will.

    
Nicole 07.05.2010 04:02
quelle
0

Das ist keine Antwort, aber ich versuche das Gleiche zu tun. Schau dir den Blog dieses Typen an, der einen anderen Server benutzt, um die Anfragen zu beantworten: Cory Wiles Blog

Wenn Sie es herausfinden, schreiben Sie bitte eine detaillierte Antwort hier, damit ich es tun kann ..:)

    
badweasel 08.07.2010 03:55
quelle
0

Ich denke, dass es möglich ist, obwohl es ziemlich kompliziert ist und plötzlichen Änderungen der Facebook-Schnittstelle unterliegt. Es könnte die Vereinbarung zwischen Ihnen und Facebook brechen.

Was Sie tun, ist das Facebook zu emulieren.

Ein Pfad, den Sie eine Facebook-Anwendung einrichten müssen. Sobald Sie die Berechtigung von Benutzer erhalten haben, können Sie etwas mit Graph API.

Sie müssen den Facebook-Anmeldeprozess und den Autorisierungsprozess durchführen. Es gibt einige Erfassungstools für http / https-Anforderungen und -Antworten. Analysiere sie, sowohl Header als auch Body.

Sobald Sie den Autorisierungsmechanismus kennen, können Sie ihn durch Ihren eigenen ersetzen. Alles danach ist auf Graph API.

Ein anderer Pfad besteht darin, den Facebook-Login sowie den Nachrichten- und Benachrichtigungsprozess zu emulieren. Erfassung und Analyse ist erforderlich.

    
OmniBus 21.03.2011 01:57
quelle
0

In der Vergangenheit habe ich ein Tool namens screen-scraper verwendet (vollständige Offenlegung: Ich habe dort gearbeitet), um die Anmeldung zu automatisieren zu Facebook. Im Grunde imitiert es eine Browsersitzung; Sie können Sitzungsvariablen (z. B. Benutzername, Kennwort) festlegen, die dann an Facebook gesendet werden, als ob der Benutzer sie in einem Browser eingegeben hätte.

Sie können in Ihrer Set-Top-Box-Umgebung möglicherweise keinen Screen-Scraper verwenden (obwohl es Java-basiert ist, also ist es möglich, dass es funktioniert). Selbst wenn dies nicht der Fall ist, könnten Sie eine ähnliche Strategie in Java implementieren, indem Sie die HTTP-Aufrufe ausführen, die ein Browser ausführen würde, um die Anmeldeseite zu laden und die Anmeldeinformationen des Benutzers zu übermitteln. Um die Informationen des Benutzers sicher zu halten, stellen Sie sicher, dass die von Ihnen verwendete HTTP-Client-Bibliothek HTTPS unterstützt.

Proxy-Tools und Erweiterungen wie Charles , Fiddler2 , Firebug, die Dev-Tools von Chrome usw. sind hilfreich, um genau zu sehen, was der Browser in Anfragen an den Server sendet.

    
chesles 03.08.2011 15:51
quelle