-1

こんにちは、Facebook グラフで作業位置名を取得しようとすると問題が発生します。私が試したこと(jsonで):

    https://graph.facebook.com/me?access_token=ABCDEFGHIJKABCDEFGHIJKABCDEFGHIJKABCDEFGHIJK

    {
    "id":"123456789",
    "name":"me me",
    "仕事": [
    {
    "位置": {
    "id":"987654321",
    「名前」:「管理者」
            }
    }
    ]
    }

ここでは、「user_work_history」を使用しようとしていますが、その許可は承認されているようです。

    echo json_decode(file_get_contents('https://graph.facebook.com/'.$useid))->作業->位置->名前

これを修正するにはどうすればよいですか?

4

1 に答える 1

1

良い。簡単に言えば、作業オブジェクトはオブジェクトの配列であるため、適切な配列要素にアクセスする必要があります。次のようにしてください。

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

より長い答えには、いくつかのスタイルのニッチが含まれます-個人的には、主に読みやすさのために、そのコードを少なくとも2行に分割します。通常、オブジェクトではなくjson_decodeから連想配列を取得することを好みますが、ofcはどちらの方法でも機能します。これは、私がこれをどのように書き直すかの概算です (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'];
于 2012-10-23T23:22:29.143 に答える