Tentativa de JavaScript não segura para acessar um quadro ao usar a navegação segura no Facebook
Lancei um aplicativo na semana passada e notei que, no Chrome, nem sempre a altura da minha tela é sempre ajustada. Passei várias horas analisando os problemas e percebi que recebo o seguinte erro - às vezes.
Unsafe JavaScript attempt to access frame with URL https://apps.facebook.com/tabletr/ from frame with URL
http: //static.ak.facebook.com/connect/canvas_proxy.php? version = 3 # behavior = p & method = getPageInfo & params =% 7B% 22channelUrl% 22% 3A% 22https% 3A% 2F% 2Fs-static.ak. fbcdn.net% 2Fconnect% 2Fxd_proxy.php% 3Fversion% 3D3% 23cb% 3Df3782154e% 26origin% 3Dhttps% 253A% 252F% 252Ftabletr.herokuapp.com% 252Ff2951037b% 26relação% 3Dtop.fram% 255Bfm 2C% 22frame% 22% 3A% 22iframe_canvas_fb_https% 22% 7D & relacionamento = top. Domínios, protocolos e portas devem corresponder.
Agora, sabendo uma coisa ou duas sobre programação, deduzi que isso provavelmente se deve ahttps
ehttp
sendo usado de forma intercambiável. Eu recebo o erro (às vezes) com a navegação segura "ativada" no Facebook e nunca com "desativada".
Mas o que eu acho realmente estranho é que o problema ocorre esporadicamente ao navegar por HTTPS. Ainda não encontrei nenhum padrão para o problema que está surgindo ou meu código está funcionando como pretendido. Sei que existem algumas postagens aqui sobre esse tópico e tentei várias soluções alternativas, mas nenhuma parece ter resolvido meu problema. Aqui está parte do meu código-
<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<myid>', // App ID
channelUrl : '//tabletr.herokuapp.com/channel.php', // Channel File
status : false, // Check login status
cookie : true, // Enable cookies to allow the server to access the session
xfbml : false // Parse XFBML
});
// Additional initialization code here
FB.Canvas.setSize({ height: 1200 });
};
// If I comment out this function I don't get any unsafe URL errors
// anymore. I'm guessing that the include of the JavaScript code either
// fails to use the right protocol or is faulty in its implementation
// by Facebook. My money is on the former.
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
//js.src = "//connect.facebook.net/en_US/all.js";
js.src = "//tabletr.herokuapp.com/js/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
Como faço para corrigir isso? Estou fora deles para ser honesto. Talvez a implementação do meu arquivo de canal esteja errada?
Código atualizado<div id="fb-root"></div>
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '<myid>', // App ID
channelUrl : '//tabletr.herokuapp.com/channel.php', // Channel File
status : false, // Check login status
cookie : true, // Enable cookies to allow the server to access the session
xfbml : false // Parse XFBML
});
// Additional initialization code here
FB.Canvas.setSize({ height: 1200 });
};
// If I comment out this function I don't get any unsafe URL errors
// anymore. I'm guessing that the include of the JavaScript code either
// fails to use the right protocol or is faulty in its implementation
// by Facebook. My money is on the former.
(function(d){
var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
//js.src = "//tabletr.herokuapp.com/js/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
</script>
Atualizei meu código com base na pergunta Stack OVerflow SDK JavaScript do Facebook sobre HTTPS carregando itens não seguros - isso, no entanto, ainda não resolveu o problema. Me deparei com o seguinte relatório de bug de 2012-01-19, que mostra os mesmos sintomas que estou enfrentando. Dedos cruzados serão corrigidos pelo Facebook em breve!
https: //developers.facebook.com/bugs/192507854181725? browse = search_4f2bbd593f8798794293016