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
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:
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.
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 ..:)
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.
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.
Tags und Links facebook facebook-graph-api middleware java-me