2012-03-30 2 views
0

Ich bin mir nicht sicher, es ist ein FBGraph Bug. In der Tat bin ich mir ziemlich sicher, dass es nicht ist, aber ich würde gerne verstehen, warum einige Facebook-Events eine Karte anzeigen, aber wenn ich sie mit FbGraph abhole, hat der Veranstaltungsort keine Veranstaltungsinformationen.FbGraph: Facebook-Veranstaltungen haben eine Karte, aber der Ort zurückgegeben ist nicht geolocated

ich tue:

FbGraph::Event.fetch("1314214...", access_token: "ABABZ...") 

Und der Veranstaltungsort, die einen Teil der Antwort ist, wird

@venue=#<FbGraph::Venue:0x007f8657de20a8 @latitude=nil, @longitude=nil, @street=nil, @city=nil, @state=nil, @zip=nil, @country=nil> 

Warum ist das so?

Antwort

1

Facebook zeigt eine Karte an, auch wenn der Ersteller des Ereignisses keine geografischen Daten geliefert hat. Wenn Sie also keine Standortdaten erhalten, liegt dies daran, dass der Ersteller des Ereignisses die Daten nie bereitgestellt hat.

Hinzugefügt: Relevante Informationen aus der Diskussion unten ...

Facebook durch die Umwandlung dieser Adresse eine Karte von einer bestimmten Adresse ziehen kann/Länge zur Breite, Sie jedoch, wie der Programmierer keinen Zugriff zu diesen Koordinaten. Facebook gibt die Koordinaten nur zurück, wenn der Benutzer sie speziell eingegeben hat (normalerweise durch Auswählen eines Punktes auf einer Karte).

Hinzugefügt: so vielleicht die oben ist falsch ...

Nach Ihrer Frage erneut zu lesen, ich merke, dass meine Antwort kann nicht auf Ihre Situation zutreffen. Es sieht so aus, als würde Facebook tatsächlich die Standort-ID zurückgeben und es Ihnen überlassen, Informationen über diesen Ort abzufragen. Denken Sie daran, dass Facebook früher Ereignisse in seiner Datenbank mit individuellen Datenfeldern für Adresse, Stadt, Staat usw. gespeichert hat. Facebook scheint jedoch langsam zu wechseln, um nur Orts-IDs zu speichern. (Aber es hat immer noch diese Felder für Programmierer verfügbar).

Früher konnten Sie ein Ereignis mit einer Straße, einer Stadt, einem Staat usw. programmatisch erstellen. Jetzt können Sie nur noch die Orts-ID angeben. Dasselbe gilt für das Event-Creation-Frontend von Ihrer Events Seite - Sie müssen einen Ort finden, den Facebook erkennt, Sie können nicht einfach eine beliebige Adresse eingeben.

jedoch wenn Sie ein Ereignis programmatisch erstellen und sie dann von Facebook bearbeiten gehen Sie werden feststellen, dass Sie können manuell eine Adresse eingeben.

+0

Nun, von dem, was ich verstehe, wenn Sie ein Ereignis erstellen, haben Sie 2 Möglichkeiten: Geben Sie einen Standortnamen selbst (und auch wenn es eine gültige Adresse ist, wird die Karte nicht angezeigt), oder wählen Sie aus den Autokomplettierungsergebnissen (und Die Karte erscheint). Willst du damit sagen, dass einige Orte, die in der Autovervollständigung auftauchen, tatsächlich nicht geolocated sind? (Wie stellt ein Ereigniserzeuger die Geolokationsdaten sonst bereit?) – Robin

+0

Was mir aufgefallen ist, ist, dass, wenn Sie die Geolokationsdaten nicht hinzufügen, die Karte nicht sofort angezeigt wird, aber nach ein paar Minuten Facebook es herausfindet und es zeigt . –

+0

** Willst du damit sagen, dass einige Orte, die in der Autovervollständigung auftauchen, tatsächlich nicht geolocated sind? ** Das ist nicht genau das, was ich gesagt habe, aber ich vermute, dass es auch wahr ist. –