/ / FaceBook Benutzer Arbeit Position Name Parsing Problem [geschlossen] - JSON, Facebook, Facebook-Graph-API

FaceBook Benutzer Arbeitsposition Name Parsing Problem [geschlossen] - JSON, Facebook, Facebook-Graph-API

Hi, ich habe Probleme, wenn ich versuche, einen Arbeitspositionsnamen auf einem Facebook-Graphen zu erhalten. Was ich versucht habe (in json):


https://graph.facebook.com/me?access_token=ABCDEFGHIJKABCDEFGHIJKABCDEFGHIJKABCDEFGHIJK  { "id": "123456789", "name": "ich mich", "Arbeit": [ { "Position": { "id": "987654321", "Name": "Administrator" } } ] }

Hier versuche ich, "user_work_history" zu verwenden, und es scheint, dass pmission autorisiert wurde.


echo json_decode (file_get_contents ("https://graph.facebook.com/". $ useid)) -> work-> position-> name

Was muss ich tun, um das zu beheben?

Antworten:

1 für die Antwort № 1

Gut. Die kurze Antwort ist, dass das Arbeitsobjekt ein Array von Objekten ist, so dass Sie auf das entsprechende Array-Element zugreifen müssen. Das Folgende sollte den Trick machen:

    echo json_decode(file_get_contents("https://graph.facebook.com/".$useid))->work[0]->position->name

Die längere Antwort enthält einige Nitpicks -persönlich würde ich diesen Code in mindestens zwei Zeilen aufteilen, hauptsächlich aus Gründen der Lesbarkeit, und ich bevorzuge im Allgemeinen lieber ein assoc-Array von json_decode als ein Objekt, aber in beiden Fällen funktioniert das. Hier ist eine Näherung, wie ich "d" umschreiben Sie dies (ignorieren Sie für den Moment, dass Sie nicht das PHP SDK verwenden, das Sie wahrscheinlich sein sollten). Nicht unbedingt Best Practices (ich behaupte nicht, eine Autorität zu sein: p), aber, imho, viel einfacher, schnell zu lesen, zu verstehen, zu debuggen und anzupassen:

$json = file_get_contents("https://graph.facebook.com/" . $user_id);
$user = json_decode($json, true);
$job_title = $user["work"][0]["position"]["name"];