2012-04-15 3 views
0

Ich möchte eine sehr grundlegende C# -Anwendung erstellen, die öffentlich verfügbare Informationen für Facebook-Benutzerprofile abrufen kann. Ich habe ein paar Seiten von Graph API gelesen, aber es gibt ein Problem. Hier können Sie ein Benutzerprofil sehen, die alle Arten von Informationen für öffentliche enthält:Erhalten Sie Benutzerinformationen auf der Facebook-Profilseite

http://tr-tr.facebook.com/people/A-Altan-Yurt/100002356385895

Allerdings kann ich nicht bekommen alle diese Informationen mit dem Graph-API mit diesem Link:

https://graph.facebook.com/100002356385895

Ich habe versucht, die Seite zu scrappen, aber das zurückgegebene Dokument enthält keine nützlichen Informationen. Da all diese Informationen öffentlich sind, denke ich nicht, dass es ein Zugangslimit für sie geben sollte. Was mache ich hier falsch?

Antwort

1

Ja, sogar öffentlich zugängliche Daten können nicht nur außerhalb der Facebook-Oberfläche geholt werden.

Um die Daten erhalten Sie eine gültige Zugriffstoken benötigen, zum Beispiel, wenn Sie die URL für die same user's feed versuchen erhalten Sie:

{ 
    "error": { 
     "message": "An access token is required to request this resource.", 
     "type": "OAuthException", 
     "code": 104 
    } 
} 

Sie können diese same url with the Graph API Explorer versuchen, und nachdem Sie Autorisieren Sie diese App, es wird ein Zugriffs-Token und Sie erhalten den öffentlichen Feed dieses Benutzers.

Das Zugriffstoken, das dort (im API Explorer) verwendet wird, ist ein App-Zugriffstoken, das wahrscheinlich das einfachste zu erhaltende Token ist, hier ist das Dokument über Authenticating as an App. Sobald Sie ein Zugriffs-Token erhalten haben, können Sie mit der Abfrage des Graphen-API beginnen und die öffentlichen Daten abrufen.

Sie können dies mit anderen Zugriffstokentypen wie einem Benutzer-Token tun.


bearbeiten

Auch wenn es für die Nutzer auf Facebook öffentlich sind, sind sie für Anwendungen, die nicht öffentlich und Sie werden wir die Ausbildung (user_education_history) sagen für die richtigen Berechtigungen fragen müssen.

können Sie genau sehen, welche Erlaubnis Sie in der Dokumentation des User object, in der Felder Tabelle der 3. Spalte mit dem Titel ist Berechtigungen für jedes Feld müssen und dort werden Sie sehen, was Sie pro Feld benötigen.

+0

Danke, aber es gibt immer noch ein Problem. Ich kann die Informationen, die ich möchte, nicht selbst mit dem Zugriffstoken bekommen. Ich habe den '/ feed'-Teil aus dem Graph-API-Explorer-Link entfernt, den Sie gepostet haben, aber das zurückgegebene JSON-Objekt war ziemlich genau dasselbe * ohne * das Zugriffstoken. Könnten Sie bitte beschreiben, wie ich Informationen wie Interessen, Bildung usw. erhalten kann? Vielen Dank. –

+0

Oh, ich verstehe. Ich habe meine Antwort bearbeitet –

+0

OK, ich verstehe. Verzeih mir, aber ich bin immer noch ein wenig verwirrt. Um die Bildungsinfo (und die Berechtigung 'user_education_history' zu erhalten), kann ich es tun ** ohne die Erlaubnis des Benutzers ** oder sollte ich einen Erlaubnisdialog (von Facebook) zeigen und jeden einzelnen Benutzer bitten, meine App diese Informationen erhalten zu lassen? (Was wäre ziemlich nutzlos für jede App, die ich denke! Vor allem, wenn es öffentlich ist) –