私は何時間もこれに苦労してきましたが、解決策はありません。
私は2つのアプリを持っていますが、両方とも同じ設定でサンドボックスモードになっています.カテゴリを除いて(それに入る)、高度な設定を含み、同じサーバーから提供され、同じPHP SDKバージョンを使用し、同じログインスクリプトを使用しています.
問題は、認証ダイアログが両方のアプリで異なることです。1 つは完全な拡張ダイアログが表示され (Flops)、もう 1 つは (ダミー アプリ) さまざまな画面で読み取りと書き込みのアクセス許可を求めるだけで、アプリケーション情報はまったく表示されません。
さて、カテゴリーについて。1 つ目のアプリ (ダミーアプリ) はニュース スタイルのアプリなのでカテゴリはニュースに設定され、2 つ目はゲームです。ダミー アプリのゲームを選択すると、2 つ目 (Flops) のように、希望どおりのダイアログが表示されます。しかし、これは解決策ではなく、受け入れることはできません。
誰もこの狂った問題の解決策を持っていますか? これらは私が試しましたが成功しませんでした:
- アプリをサンドボックスとライブの両方に変更しました。
- リクエストコードを完全に変更します。
- アクセス許可を変更して、2 つが同じになるようにします。
- キャンバスを追加 => リクエストに対して 1、および getLoginUrl が持つことができるその他の設定
これが最初のアプリのスクリーンショットです
2つ目はこんな感じ(1つ目のアプリで見たいやつ)
コードで実現できる場合、現在のコードは両方のアプリで次のようになります。
// Load Facebook sdk
include_once ROOT . "/facebooksdk/facebook.php";
$config = array (
'appId' => FACEBOOK_APP_ID,
'secret' => FACEBOOK_APP_SECRET,
'fileUpload' => true
);
$facebook = new Facebook($config);
// Request Facebook user
$facebookid = $facebook->getUser();
// Facebook returned signed request
if ( isset($_POST["signed_request"]) ) {
// $request = sanitize_string($_POST["signed_request"]);
// $signedRequest = parse_signed_request($request, FACEBOOK_APP_SECRET);
}
// User is missing, send user to permissions page
if ( !$facebookid ) {
$url = $facebook->getLoginUrl(array ( 'scope' => FACEBOOK_APP_PERMISSIONS ));
echo "<html><script>top.location.href='{$url}'</script><body>1</body></html>";
exit();
}