1

Facebook で自分のページにログインするユーザーの年齢を取得するために誕生日を取得しようとしています。自分のプロフィールでログインしようと試み続けていますが、間違った年齢が表示されます。以下は、process_facebook.php にあるコードです (int を取る「age」というフィールドを持つデータベースがあります)。

function getAge($birthday) {
        $dt = strtotime($birthday);
        // convert the birthday to a standard format (UNIX epoch)
        $a = gmdate('Y') - gmdate('Y',$dt);
        // find the difference of years
        $a = (int)$a;
        return $a; // return the age.
    }

典型的な process_facebook.php フレームワーク内には、次のものがあります。

$birthday = $me['birthday'];


$age = getAge($birthday);

Facebook で自分の誕生日が 1987 年 1 月 4 日であることはわかっています ($birthday の文字列 "01/04/1987" として取得する必要があります)。しかし、データベースのフィールドに値が入力されると、43 という数字が表示されます。

$birthday として "01/04/1987" をフィードするコードを個別に実行してみましたが、26 を吐き出しました。

何が起こっているのかわかりません (Facebook が私に間違った誕生日を伝えているのでしょうか?) 事前にご協力いただきありがとうございます。

4

1 に答える 1

0

アプリケーションのアクセス許可が本当に付与されているかどうか、 Graph API Explorerで確認してくださいuser_birthday。右上隅のドロップダウンでアプリを選択し、テキストボックスにこれを入力します

me?fields=birthday

birthday出力にフィールドがない場合は、クリックGet Access Tokenしてアプリに付与した権限を確認できます。

user_birthday認証時にアプリに許可を与えておらず、$me['birthday']空だと思います。そのため、計算された年齢は 43 歳です。Marc Bがコメントで指摘したように、1970 年から数年が経過しています。それを確認するには、単に使用しますvar_dump($me['birthday'])

そして、このコメントを必ずチェックしてください。

于 2013-02-08T19:25:15.437 に答える