0

新しい認証を試していますが、最初のアクセスでアプリが何度も更新されることがあります。(Cookieが設定されていない場合を意味します。初めてまたはブラウザの再起動後など)

私は認証のためにこのコードを持っています:

require_once './facebook/facebook.php';
$facebook = new Facebook(array(
          'appId'  => $fbconfig['appid'],
          'secret' => $fbconfig['secret'], 
          'fileUpload' => $fbconfig['fileUpload'],
          'cookie' => true,
        ));

$uid = $facebook->getUser();

if($uid)
{
  session_start();
  if(!isset($_SESSION['me']))
  {
     try
        {
           $_SESSION['me'] = fql("select name, sex, pic_big, locale, email, birthday from user where uid=me()",$facebook);
           $_SESSION['me'] = $_SESSION['me'][0];
        }
        catch(Exception $o)
        {
          print_r($o);
        }
  }
}
else
{
            $loginUrl   = $facebook->getLoginUrl(
                array(
                    'scope'         => $fbconfig['perms'],
                    'redirect_uri'  => $fbconfig['canvas'],
                )
             ); 
            echo "<script type='text/javascript'>top.location.href = '$loginUrl';</script>";
            exit;
}

したがって、エラーは$ facebook-> getUser();です。それは0です。しかし、私がリフレッシュを停止して再びそこに行くとき..それは正しく動作します。

4

1 に答える 1

0

P3Pヘッダーを設定してみてください。一部のブラウザでは、指定されていない限り、iframe内のページでCookieを設定することはできません。

PHPの最初の行としてこのようなものがそれを行う必要があります。

header('P3P:CP = "IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"');

P3Pの詳細はこちら

http://en.wikipedia.org/wiki/P3P

于 2011-11-27T17:05:18.707 に答える