I am working on a Facebook canvas app written in Ruby using Sinatra, and hosted on Heroku.
I have this as part of my code:
before do
response.headers['P3P'] = 'CP="We have no P3P policy."'
end
I've have tried other values for that, including CP="HONK" (as recommended on the facebook dev website).
My app works perfectly in Firefox and Chrome, but in IE or Safari it acts very weirdly. It will either refresh indefinitely, refresh once and stop, or just not load (the canvas is empty, it is white). Sometimes, or on some computers, it simply works, but this is rare.
the content-type values are the same for both my page and facebook's page.
It is most likely stuck reloading in the authorization redirects. I use sinatra's built in session[]
to store some things like the current user ID. I'm guessing that these cookies aren't being set, and I understand that if 3rd party cookies are disabled then my app simply wont work. However, since I have a P3P setting, it should work in browsers that accept 3rd party cookies (all of mine are set to do this).
How can I make it work in IE?
edit: I also have a channel.html file in the root and channelUrl : "<%= url_no_scheme('/channel.html') %>"
is part of my FB.init .
Possibly a fix:
Disable the channel.html file?
By default, Facebook loads an empty with CSS display:none and calls parent.onchanneliframeready().
It looks like this call does not complete.