0

SDK php を使用して、ユーザーが Facebook アカウントを使用して自分の Web サイトにログインできるようにしています。SDKの例に従っています。ログインしたユーザー ID を取得しようとすると、0 が返されます。

$id = $facebook->getUser();

何が問題なのか、また、php SDK を使用した例を機能させる方法を教えてください。

これは例のコードです:

<?php
$config = FacebookConfig::getConfig();
$facebook = new Facebook( $config );
$user = $facebook->getUser();
Facebook::$CURL_OPTS[ CURLOPT_SSL_VERIFYPEER ] = false;

if ( $user ) {
    try {
        $user_profile = $facebook->api( '/me' );
        $logoutUrl = $facebook->getLogoutUrl();
    }
    catch ( FacebookApiException $e ) {
        error_log( $e );
        $user = null;
    }
} else {
    try {

        $loginUrl = $facebook->getLoginUrl( array(
             "scope" => "email,user_education_history,user_work_history",
            "redirect_uri" => "http://localhost:8888/www/index.php" 
        ) );
        $user = $facebook->getUser();
        $user_profile = $facebook->api( '/me' );
        $userProf = $facebook->api( "/$user" );
        echo $user;
        echo $user_profile;
    }
    catch ( FacebookApiException $e ) {
        $user = null;
        echo "expetion in login";

    }
}
?>
4

1 に答える 1

0

ユーザーを$loginUrl!にリダイレクトする必要があります。これを試して:

<?php
$config = FacebookConfig::getConfig();
$facebook = new Facebook( $config );
$user = $facebook->getUser();
Facebook::$CURL_OPTS[ CURLOPT_SSL_VERIFYPEER ] = false;

if ( $user ) {
    try {
        $user_profile = $facebook->api( '/me' );
        var_dump($user_profile);
        $logoutUrl = $facebook->getLogoutUrl();
    }
    catch ( FacebookApiException $e ) {
        error_log( $e );
        $user = null;
    }
} else {
    try {
        $loginUrl = $facebook->getLoginUrl( array(
             "scope" => "email,user_education_history,user_work_history",
            "redirect_uri" => "http://localhost/facebook/index.php" 
        ) );
        header('Location: '.$loginUrl);
    }
    catch ( FacebookApiException $e ) {
        $user = null;
        echo "exception in login";
    }
}
于 2013-03-05T15:35:19.023 に答える