0

私は Facebook Web アプリを開発しました (つまり、apps.facebook.com/myappname でロードしたときに iFrame 内に存在するアプリです)。

Facebook アプリの設定で、「Facebook のアプリ」セクションを設定して、キャンバス URL とセキュアなキャンバス URL を含めました。

「モバイル Web」セクションも確認し、モバイル サイト URL にセキュア キャンバス URL を入力すると、モバイル ブラウザー (iPhone、iPad など) からアプリをロードするたびに、次のエラーが表示されます。モバイル アクセス用に正しく設定されていないため、アプリ「APPNAME」の「APPNAME」は利用できません。」

Facebook iOS アプリからアプリにアクセスしようとすると、同じエラーが表示されます。

ただし、モバイル サイトの URL ではない場合、モバイル サファリではエラーは表示されませんが、Facebook iOS アプリ内からアプリにリンクしようとすると、別のエラーが表示されます。モバイル Web URL または URL がアプリケーションによって所有されていることを確認できませんでした。リダイレクトできません。」

私は多くの検索を行いましたが、設定の正しい組み合わせが何であるかについて明確な方向性を見つけることができません. モバイル URL を指定する必要がありますか? キャンバスの URL と同じにすることはできますか? 等

私は現在、アプリ設定の「アプリドメイン」フィールドに何も指定していません。これは、文書化されたバグがあると問題が発生する可能性があると思われるためです(そして、それが配置されているとエラーが発生します)。

アプリ自体のコードに関しては、複雑なことは何もしていません。コードのベースは、次のように PHP SDK を使用して認証を行っているだけです。

<?php
    // get user from the facebook object
    $facebook = new Facebook(array(
        'appId' => $config['appId'],
        'secret' => $config['secret'],
    ));

    $user = $facebook->getUser();

    // if user is not loggedin, redirect to loginpage
    if(!$user){
        $login_url = $facebook->getLoginUrl(array(
            'redirect_uri' => 'MY_APP_URL_HERE'
        ));
        echo "<script type='text/javascript'>top.location.href = '$login_url';</script>";
        exit();
    }

    //get user from the facebook object
    $user = $facebook->getUser();
?>

誰でもここで提供できる支援やリードは、非常に高く評価されます。

ありがとう!

4

2 に答える 2

0

redirect_uri を設定した場合、モバイル デバイスのキャンバス アプリの URL を指すことはできません。モバイル URL にクエリ文字列変数を追加してみて、redirect_uri を決定するときにそれを検出するか、redirect_uri を制御する必要がない場合は省略してください (必須パラメーターではありません)。なぜFBがエラーを出すのではなく、モバイルURLに再度リダイレクトしないのかはわかりません.redirect_uriを設定するときに開発者が明示的に指定した動作を壊していると推測されます.

于 2013-12-11T00:05:19.620 に答える
0

fb バグのコメントに投稿された回避策があります: https://developers.facebook.com/bugs/124226157757972

Kirill Kazakov · Ecwid のソフトウェア開発者 興味深い回避策は、javascript ベースのリダイレクトからリファラーを削除することです。

于 2013-05-31T15:32:33.007 に答える