0

Facebookを使用して自分のWebサイトのログインを管理しています。また、PHP SDKを使用してGraphAPIを呼び出し、フレンドリスト、コメント、投稿などを取得します。

私が抱えている問題は、ユーザーがFacebookからのリンクをたどってからサイトにアクセスできるように、サイトをスタンドアロンにしたいということです。

それは一種の動作ですが、ユーザーがリンクをたどると、Facebookのキャンバス領域に私のサイトのインデックスページが表示されることがあります。私はこれを完全に再現することができなかったので、それが起こる状況を特定していません。ただし、その場合、ブラウザで[戻る]をクリックすると、自分のサイトに戻ります。

リンクによってユーザーがFacebookから私のサイトに移動し、Facebookに電話してユーザーがログインしていることを確認したようですが、何らかの理由で私のサイトに戻らないようです。しかし、私が言うように、私はよくわかりません。

とにかく、誰かが問題が何であるかについて何か考えを持っていますか?

私のログインコードは次のとおりです。

// Create new Facebook object
$facebook = new Facebook(array(
  'appId'  => APP_ID,
  'secret' => APP_SECRET,
  'cookie' => true, // enable optional cookie support
));

// Create login url, in case user is not logged in or session has expired
$loginUrl = $facebook->getLoginUrl($params = array('canvas' => 0, 'fbconnect' => 0, 'req_perms' => 'publish_stream', 'cancel_url' => 'http://www.pubfish.com'));

// Get current facebook session
$session = $facebook->getSession();
$me = null;

// Session based API call.
if ($session) { // If session exists, make sure it's still valid
 try { // Get session to see whether it's valid
  // User is logged in and has authorised application already
  $uid = $facebook->getUser();
  $me = $facebook->api('/me');
 } catch (FacebookApiException $e) {
  echo "<script type='text/javascript'>top.location.href = '".$loginUrl."';</script>";
  error_log($e);
 }
}else { // No session - so ask user to log in
 $url=$facebook->getLoginUrl(array('canvas' => 1,'fbconnect' => 0));
 echo ('<script type="text/javascript">top.location.href=\''.$url.'\';</script>');
}
4

1 に答える 1

1

次のように「next」を設定してみましたか:$ params = array('canvas' => 0、'fbconnect' => 0、'req_perms' =>'publish_stream'、'cancel_url' =>'http:// www .pubfish.com'、' next'=>' http://www.pubfish.com')?他のすべてが失敗した場合は、これを使用してキャンバスのiframeから抜け出すことができます。

<script>
$(document).ready (function () {
if (window != top) top.location.href = location.href;
});
</script>
于 2011-04-26T14:20:25.427 に答える