0

私は Facebook にアプリを持っています。私はページタブのみを使用しています。すべてが順調に進んでいます。クリックして、アプリケーションを許可し、権限を要求し、許可しますが、ページに戻ってエラーが発生し、何度もリロードされます...ブラウザが常にリロードするため、ページをロードできません。わかりませんそれを修正する方法...

どうもありがとう

これが私のコードです:

<?php

require_once "sdk/facebook.php";

$app_id = "MY_APPID";
$app_secret = "MY_SECRET";

$is_fan = false;

// Init facebook api.
$facebook = new Facebook(array(
    'appId' => $app_id,
    'secret' => $app_secret,
    'cookie' => true
));

// Get and decode signed request.
$signed_request = $facebook->getSignedRequest();
if (isset($_REQUEST['signed_request'])) {
    $encoded_sig = null;
    $payload = null;
    list($encoded_sig, $payload) = explode(
        '.', $_REQUEST['signed_request'], 2
    );
    $sig = base64_decode(strtr($encoded_sig, '-_', '+/'));
    $data = json_decode(
        base64_decode(strtr($payload, '-_', '+/'), true)
    );
    $signed_request = $data;
}
else {
    $signed_request = false;
}

// Determine if we have a fan request.
if($signed_request) {
    if($signed_request->page->liked) {
        $is_fan = true;
    }
}

// for fans
if ($is_fan) { ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="css/style.css" rel="stylesheet" type="text/css" />       

    <script>
      var oauth_url = 'https://www.facebook.com/dialog/oauth/';
      oauth_url += '?client_id=414328901957674';
      oauth_url += '&redirect_uri=' + encodeURIComponent('https://www.facebook.com/pages/null/167838393340757/?sk=app_414328901957674');
      oauth_url += '&scope=user_birthday,user_likes,photo_upload,publish_stream,user_about_me,user_photos,user_hometown,user_location'

      window.top.location = oauth_url;
    </script>

    </head>
    <body background="images/fanda.jpg" style="overflow:hidden;"">
      </body>

<?php }

// for non-fans
else { ?>

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <link href="css/style.css" rel="stylesheet" type="text/css" />       
    </head>
     <body background="images/klikni-like.jpg" style="overflow:hidden;">
     </body>

<?php } ?>
4

2 に答える 2

0

私はあなたの問題の解決策を見つけました。if($is_fan) を確認するときにこれを更新します。

$user_id = $facebook->getUser();
if ($is_fan) {  
      if($user_id)
          {
               code after authentication and page Liked
          }

             }
else  {
          <script>
              var oauth_url = 'https://www.facebook.com/dialog/oauth/';
              ................ Next 4 lines same as the above code ..............
          </script>
      }
于 2012-09-01T22:18:40.127 に答える
0

誰かがファンの場合、スクリプトは常に次のことを行います。

window.top.location = oauth_url;

これにより、誰かがファンの場合、ページが無限にリロードされます。

于 2012-08-11T18:23:07.807 に答える