1

PHP5.2 を実行している自分のサーバーで正常に動作するクライアント用の Facebook アプリを作成しました。クライアント サーバーにインストールすると、PHP5.1.6 が実行されていることがわかりました。したがって、json_de/encode lib はありません。

クライアントは、サーバー ベンダーによって PHP5.2 へのアップグレードが妨げられており、Web サイトのハッキングと状態 (Joomla v1.0 でハッキングされた古代) はおそらく危険です。

周りを見回すと、upgradephp(私が使用したv1.7)が見つかりました。json_encodeとdecodeの両方を提供する

私が立ち往生している問題は、コードがFacebookのユーザーIDを取得しようとしている永久ループにあることです:

$options = array("scope" => "user_birthday",
                 "redirect_uri" => "https://apps.facebook.com/".$nameSpace."/");
$loginUrl = $facebook->getLoginUrl($options);
// Get User ID
$user = $facebook->getUser();
if (!$user) {
    // Require user to authenticate the app
    echo '<script>top.location.href = "' . $loginUrl . '"</script>';
}

このコードは、クライアントではなく、自分のサーバーでうまく機能します。それで、どこからデバッグを開始するのか、どのように開始するのか疑問に思っています。どんな提案でも大歓迎です!

4

1 に答える 1

0

答えは単純に、私が作業を行ったクライアントによって引き起こされた Facebook アプリ パネル内の構成の問題でした。彼らは自分の Web サイトの URL を誤って入力し、前の「www.」を省略していました。アプリが実行されると、www なしでドメイン名に移動しようとし、www.domainname にリダイレクトされました。それだけでなく、リダイレクトで http の https が削除されました。Facebook は https 以外のリクエストを許可しないため、リダイレクトの無限ループが発生しました。

于 2013-01-17T14:24:14.470 に答える