/ / Особиста сторінка робочого столу користувача FaceBook [сигнал] - json, facebook, facebook-graph-api

Facebook користувач робоча позиція ім'я розбору питання [closed] - json, facebook, facebook-graph-api

Привіт У мене є проблеми при спробі отримати назву робочого місця на графіку фейсбука. Те, що я спробував (в json):


https://graph.facebook.com/me?access_token=ABCDEFGHIJKABCDEFGHIJKABCDEFGHIJKABCDEFGHIJK  { "id": "123456789", "ім'я": "я мене", "робота": [ { "позиція": { "id": "987654321", "ім'я": "адміністратор" } } ] }

Тут я намагаюся використовувати "user_work_history", і його пізмія, схоже, була санкціонована.


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

Що потрібно зробити, щоб виправити це?

Відповіді:

1 для відповіді № 1

Добре. Коротка відповідь полягає в тому, що робочим об'єктом є масив об'єктів, тому вам доведеться отримати доступ до відповідного елементу масиву.

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

Більш довга відповідь включає в себе деякий стиль нітпікс -особисто я розбив цей код на щонайменше на дві лінії, головним чином для читабельності, і я взагалі волію отримати асоціативний масив з json_decode, а не об'єкта, але в будь-якому випадку працює. Ось приблизна, як я перепишіть це (ігноруючи той момент, коли ви не використовуєте PHP SDK, який ви, ймовірно, повинні бути). Не обов'язково найкраща практика (я не претендую на авторитет: p), але, імхо, набагато простіше швидко читати, розуміти, налагоджувати та налаштовувати:

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