0

私は実際に解決策を見つけようとしましたが、何もありませんでした。ここで解決策を見つけられることを願っています。

私は自分のWebサイトでFacebookConnectを使用していますが、Facebookにログオンするとすべてが正常に機能し、FacebookConnectを介してサイトに自動的にログインします。その逆も同様です。

今私はそれをFacebookアプリケーションにしようとしましたが、次の問題があります:Facebook iframe内で実行しようとしましたが、残念ながら自動的にログインしません。動作する場合と何も起こらない場合があります。Facebookセッションを取得できません。サーバーがFacebookでユーザーに接続して情報を取得できない可能性があります。)

使用しているいくつかのコード:

include 'includes/facebook.php';

$facebook = new Facebook(array(
  'appId'  => $setting['facebook_appid'],
  'secret' => $setting['facebook_secret'],
  'cookie' => true, // enable optional cookie support
));

if ($facebook->getUser()) {
$facebook_session = 1;

try {
  $fb_user = $facebook->api('/me');
} catch (FacebookApiException $e) {
  error_log($e);
}

function get_facebook_cookie($app_id, $application_secret) {
  $args = array();
  parse_str(trim($_COOKIE['fbs_' . $app_id], '\\"'), $args);
  ksort($args);
  $payload = '';
  foreach ($args as $key => $value) {
    if ($key != 'sig') {
      $payload .= $key . '=' . $value;
    }
  }
  if (md5($payload . $application_secret) != $args['sig']) {
    return null;
  }
  return $args;
}

$cookie = get_facebook_cookie($setting['facebook_appid'], $setting['facebook_secret']);

$open = @file_get_contents('https://graph.facebook.com/me?access_token='.$cookie['access_token']);

if ($open != FALSE) {
    $fbdata = json_decode($open);
    $fb_user = array();

    foreach($fbdata as $key => $fbdata2) {
        $fb_user[$key] = $fbdata2;
    }
}

}
else {
    $facebook_session = 0;
}

ps:もちろんセキュアキャンバスURLを使用しています

助けてください !前もって感謝します

4

1 に答える 1

0

まず、Firefox、Chrome、または Internet Explorer を使用していますか? IEでFB接続を使用すると、いくつかの問題が発生しました。それを解決するには、これを追加する必要があります:

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

Internet Explorer が IFrame でセッションを使用できるようにします。

于 2012-05-18T08:25:38.900 に答える