When calling FB.login()
in IE (any version), the popup auth dialog simply says:
An error occurred with <appname>. Please try again later.
The call works as expected in Chrome, Firefox, and Opera. Reduced test:
FB.init({
appId : '...',
channelURL : '...',
status : true,
cookie : true,
oauth : true,
xfbml : false
});
FB.login(...);
Demo here. It doesn't matter whether a Facebook account is already logged in or not; however, if the logged in Facebook account has already authorized the app (so no dialog needs to be shown), then FB.login()
succeeds in IE and I'm able to call API functions.
Edit: Trying to authorize the app's admin account in IE yields a little more error detail:
API Error Code: 191
API Error Description: The specified URL is not owned by the application
Error Message: Invalid redirect_uri: Given URL is not allowed by the Application configuration.
Both Chrome and IE send a redirect_uri
on s-static.ak.fbcdn.net.
IE: https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f1cd66d36136ac9&origin=https%3A%2F%2Fjosh3736.net%2Ffbec46a30660a9&relation=opener&transport=flash&frame=f1d03767721d88c
Chrome: https://s-static.ak.fbcdn.net/connect/xd_proxy.php?version=3#cb=f3cc233c94&origin=https%3A%2F%2Fjosh3736.net%3A8%2Ff29e5a7f9&relation=opener&transport=postmessage&frame=f1f640e58
It looks like the JavaScript SDK is dropping the origin
's port. (Chrome has %3A8%2F
[:8/] at the end of origin
, IE only has %2F
Reported as a bug.