3

新しい PHP SDK と GRAPH API を使用して古い FBML アプリを iFrameに移行しようとしていますが、訪問者の都市を見つける方法がわかりません。

たとえば、私自身の Facebook プロフィールでは、Current CityHometownの両方をリストしています。

ここに画像の説明を入力

しかし、次の iFrame アプリを試してみると、場所出身地は印刷されませんが、雇用主や学歴などの他のデータは印刷されます。

<?php

include_once 'facebook.php';

$facebook = new Facebook(array(
            'appId'  => "182820975103876",
            'secret' => "XXXXXXX",
            'cookie' => true,
            ));

$session = $facebook->getSession();

if (!$session) {
    $url = $facebook->getLoginUrl();
    print("<script type='text/javascript'>top.location.href = '$url';</script>");

} else {
    try {
        $me = $facebook->api('/me');

        print('<pre>');
        print_r($me);
        print('</pre>');

    } catch (FacebookApiException $e) {
        print("Error:" . $e);
    }
}

?>

これは私が自分で見たデータの一部です。現在の場所はそこにはありません:

Array
(
    [first_name] => Alexander
    [education] => Array
        (
            [0] => Array
                (
                    [school] => Array
                        (
                            [id] => 106509962720287
                            [name] => Riga Nr. 40
                        )

                    [type] => High School
                )

            [1] => Array
                (
                    [school] => Array
                        (
                            [id] => 103130426393616
                            [name] => RWTH Aachen University
                        )

                    [year] => Array
                        (
                            [id] => 143018465715205
                            [name] => 2000
                        )

                    [type] => College
                )

        )
    [gender] => male
...........
)

よろしくアレックス

4

2 に答える 2

5

user_locationuser_hometown 権限が必要です。

したがって、ログインURLは次のようになります。

$url = $facebook->getLoginUrl(array(
    'scope' => 'user_location,user_hometown'
));
于 2011-05-06T17:27:52.927 に答える
2

fb api を呼び出したときに得られるものはそれほど難しくありません (FB ドキュメントの例のコードの一部)。

   "id": "220439",
   "name": "Bret Taylor",
   "first_name": "Bret",
   "last_name": "Taylor",
   "link": "http://www.facebook.com/btaylor",
   "username": "btaylor",
   "hometown": {
      "id": "108363292521622",
      "name": "Oakland, California"
   },
   "location": {
      "id": "109650795719651",
      "name": "Los Gatos, California"
   },

その情報を取得するには、最初に api を呼び出します

$me = $facebook->api('/me');

例でわかるように、故郷の名前は「故郷」配列の中にあります。同じことが場所(現在の都市)にも当てはまり、その内部の「場所」配列..だからあなたが今やっていることは

$hometown = $me['hometown']['name'];
$current_city = $me['location']['name'];

echo 'You are currently living in: '.$current_city.' but your hometown is: '.$hometown

hope it helps man ;)

EDIT:

            $access_token = $facebook->getAccessToken();
            $req_id = $_GET['request_ids'];
            $req = $facebook->api('/me/?access_token='.$access_token);
            echo $req['hometown']['name'];

于 2011-05-06T12:38:09.813 に答える