1

PHP で記述された Facebook API 接続スクリプト (Facebook 提供) を使用しています。すべてが機能し、ログイン URL が生成され、ログイン時に Web サイトにリダイレクトされます。

ただし、$user 変数は未定義のようです。

誰かが同様の問題を経験しましたか? Facebook アプリの統計ページで、アプリが使用されていることがわかります。

更新 - コード:

<?php

$app_id     = "xxxxxxxxxxxxxx";
$app_secret = "xxxxxxxxxxxxx";
$site_url   = "http://xxx";

try{
    include_once "src/facebook.php";
}catch(Exception $e){
    error_log($e);
}

$facebook = new Facebook(array(
    'appId'     => $app_id,
    'secret'    => $app_secret
    ));

 if($user = $facebook->getUser())
 {
     echo 'ok';
 }
 else
 {
 }

if($user){
//==================== Single query method ======================================
    try{
        // Proceed knowing you have a logged in user who's authenticated.
        $user_profile = $facebook->api('/me');
    }catch(FacebookApiException $e){
        error_log($e);
        $user = NULL;
    }
//==================== Single query method ends =================================
}

if($user){
    // Get logout URL
    $logoutUrl = $facebook->getLogoutUrl();
}else{
    // Get login URL
    $loginUrl = $facebook->getLoginUrl(array(
        'scope'     => 'email,user_birthday,user_about_me',
        'redirect_uri'  => $site_url . '/auth_complete.php',
        ));
}

if($user){
    // Proceed knowing you have a logged in user who has a valid session.

//========= Batch requests over the Facebook Graph API using the PHP-SDK ========
    // Save your method calls into an array
    $queries = array(
        array('method' => 'GET', 'relative_url' => '/'.$user),
        array('method' => 'GET', 'relative_url' => '/'.$user.'/home?limit=50'),
        array('method' => 'GET', 'relative_url' => '/'.$user.'/friends'),
        array('method' => 'GET', 'relative_url' => '/'.$user.'/photos?limit=6'),
        );

    // POST your queries to the batch endpoint on the graph.
    try{
        $batchResponse = $facebook->api('?batch='.json_encode($queries), 'POST');
    }catch(Exception $o){
        error_log($o);
    }

    //Return values are indexed in order of the original array, content is in ['body'] as a JSON
    //string. Decode for use as a PHP array.
    $user_info      = json_decode($batchResponse[0]['body'], TRUE);
    $feed           = json_decode($batchResponse[1]['body'], TRUE);
    $friends_list       = json_decode($batchResponse[2]['body'], TRUE);
    $photos         = json_decode($batchResponse[3]['body'], TRUE);
//========= Batch requests over the Facebook Graph API using the PHP-SDK ends =====


}

?>
4

4 に答える 4

1

なぜ機能したのかは完全にはわかりませんが、ユーザーを Javascript SDK が含まれているページ (http://developers.facebook.com/docs/reference/javascript/) にリダイレクトしたところ、機能するようになりました!

于 2012-12-19T17:14:53.663 に答える
0

以前は数か月間機能していた私たちのFBアプリで、あなたが話している問題が発生しています。$fb_userは未定義で返されるようになりました。=(

于 2012-12-18T23:53:36.940 に答える
0

SDK を更新してください。数週間前から証明書の問題が発生しているようです。

最新バージョンはhttps://github.com/facebook/facebook-php-sdk/にあります。

于 2012-12-19T15:33:27.700 に答える
0

ユーザーはまだアプリを承認していません。このようなことを試してみてください -

$user_id = $facebook->getUser();
echo $uid;

if($user_id){
  try {
    $user_profile = $facebook->api('/me');

  } catch (FacebookApiException $e) {
    error_log($e);
    $user_id = null;
  }
}else{
    $login_url = $facebook->getLoginUrl();
    echo("<br>login url=".$login_url);
};
于 2012-12-18T09:44:09.090 に答える