StackOverflow のこれを含む多くの質問と回答を読みましたが、どれも機能しません。私が見たすべての回答に対する私の質問は、「Safari で動作しますか?」です。
これをSafariで動作させようとしています。Chrome と Firefox で問題なく動作します。しかし、Safari ではログイン画面がフリーズし、「安全でない JavaScript が URL でフレームにアクセスしようとしています」というログ メッセージが表示されます。
私はキャンバスアプリを持っています。ユーザーをログインさせ、ログイン後にページにリダイレクトしたい。ログイン後に直接リダイレクトしようとしています。私が試してみました
Facebook URL への設定
window.top.location
(all_data 引数として署名されたリクエストに渡されるいくつかのデータを使用)window.location
アプリと同じドメインの URL に設定します。イベントにサブスクライブし、
auth.login
そこにリダイレクトを配置するコールバックにリダイレクトを入れてログインする
これらはいずれも Safari では機能しません。どうしようもないと思い始めています。
function doSomething()
{
FB.login(
function(loginResponse)
{
if (loginResponse.authResponse)
{
window.top.location = "my url"
}
},
{
scope:"some,scope"
}
);
}
}
Nitzan Tomer への回答として、Safari では機能しないが他のものでは機能する同等のコードを次に示します。
function myThing()
{
FB.login(function(loginResponse)
{
if (loginResponse.authResponse)
{
FB.api('/me', function(response)
{
window.location = "http://my_app.com?x=" + response.xyz;
});
}
},
{
scope:"scopes"
}
);
}