0

基本的な Facebook アプリを作成しています。許可のないユーザーがアプリにアクセスすると、承認ページにリダイレクトされます。しかし、ページが表示されず、次のエラーが表示されます。

このコンテンツはフレームに表示できません

新しいウィンドウで開くと、アプリの認証ページが表示されます。[アプリに移動] をクリックすると、アプリに移動しますが、Facebook から離れた独自のウィンドウで表示されます。FB に戻ってアプリ ページをリロードすると機能するようになりました。

見知らぬ人ですが、ログアウトして自分のアプリ ページに移動すると、Facebook 404 ページ (4oh4.php) が表示されます。

私はどういうわけかこれを間違っていると推測しているので、誰かが私のスクリプトに明らかな問題があるのを見ることができますか? ありがとう。

何が起こっているかを確認するには - http://apps.facebook.com/dyne_drewett_news/

<?php
require 'fb/facebook.php';

$fbconfig['appUrl'] = 'my-app-url';    // Create An instance of our Facebook Application.
$facebook = new Facebook(array(
    'appId'  => 'my-app-ID', // Entered correctly in actual script
    'secret' => 'me-app-secret', // Entered correctly in actual script
    'cookies' => 'true',
));

// Get the app User ID
$user = $facebook->getUser();

if($user) :
    try{       // If the user has been authenticated then proceed
        $user_profile = $facebook->api('/me');
    } catch (FacebookApiException $e){
        error_log($e);     
        $user = null;
    }
endif;

// If the user is authenticated then generate the variable for the logout URL
if($user) :
    $logoutUrl = $facebook->getLogoutUrl();
?>

<!-- My HTML goes here -->

<?php
else :
    $loginUrl = $facebook->getLoginUrl();
    header('Location: '.$loginUrl);
endif;
?>
4

1 に答える 1

1

iframe で作業しているため、JavaScript リダイレクトを実行する必要があります。その方法でのみ、一番上のフレームをリダイレクトできます-

echo "<script language=javascript>";
echo "top.location.href ='".$url."';";
echo "</script>";
exit();

これは、Facebook アプリケーション内で完全なリダイレクトを行う唯一の方法です。他のリダイレクト (PHP など) は、iframe内のユーザーのみをリダイレクトします...

于 2012-08-30T10:39:30.190 に答える