0

この認証コードに基づいた非常に単純な Facebook アプリがあります。

$session = $facebook->getUser();

if (!$session) {
    $url = $facebook->getLoginUrl(array(
               'canvas' => 1,
               'fbconnect' => 0,
               'scope' => 'publish_stream, email, user_activities, user_birthday, user_hometown'
               //'req_perms' => 'publish_stream,email,user_location,user_birthday,user_hometown'
           ));
    echo "<script type='text/javascript'>top.location.href = 'FB_URL';</script>";
} else {
    try {
        $uid = $facebook->getUser();
        $me = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        echo "<script type='text/javascript'>top.location.href = 'FB_URL';</script>";
    exit;
    } 
}

echo "\n === \n";
print_r($uid);
echo "\n === \n";
print_r($me);

出力は次のとおりです。

=== ID_VALUE === Array ( [id] => ID_VALUE [name] => NAME [first_name] => FIRST_NAME [last_name] => LAST_NAME [link] => PROFILE_URL [username] => USERNAME [gender] => male [email] => EMAIL [timezone] => 2 [locale] => en_US [verified] => 1 [updated_time] => 2012-05-16T13:00:04+0000 )

拡張アクセス許可を指定した後、ユーザーの誕生日と出身地に関する情報も配列に取得する必要があるuser_birthdayと思います...しかし、残念ながらこれらの情報はそこにありません...user_hometown

何か不足していますか、それとも何が間違っていますか?

4

1 に答える 1

4

いろいろ調べましたが、

これを試すことができますか: $me = $facebook->api('/me?fields=birthday');そして

スコープについて - 適切な許可を要求すると、user_birthday

$facebookオブジェクトが持っていることを確認してくださいaccess_token

見て報告してください、私は助けようとします。

編集: 変数に LoginUrl を記述しているため、どこから FB_URL を取得するのかわかりません$url。コードを確認し、次の方法を試すことをお勧めします。

if (!$session) {
    $url = $facebook->getLoginUrl(array(
              'redirect_uri' => //SET back to your page or whenever you need
               'scope' => 'publish_stream, email, user_activities, user_birthday, user_hometown'          
           ));
    echo '<script type="text/javascript">top.location.href =' . $url . '</script>';
} else {
    try {           
        $me = $facebook->api('/me');
    } catch (FacebookApiException $e) {
        echo $e->getMessage();       
    } 
}

さらに、すべての権限についてユーザー アクセス トークンを検証します。 Get $facebook->getAccessToken(); ここで debugit -> Token debugger

于 2012-09-05T10:36:50.063 に答える