0

J'essaie d'obtenir une fonctionnalité javascript très simple de travailler dans la toile de l'application facebook, cependant, je ne reçois nulle part. Je poste le code ci-dessous.Comment se fait-il que mon javascript ne fonctionne pas dans l'application facebook?

En outre, j'utilise seulement une URL de toile non-HTTPS? Cela fera-t-il une différence?

Je ne parviens pas à modifier le facebookUserIDDiv innerHTML lorsque je consulte mon application sur facebook. Cependant, quand je vais à l'URL de l'hôte réel (URL de la toile), je peux exécuter n'importe quel javascript sans aucun problème.

Est-ce que l'application FB canvas prend même en charge les fonctions DOM standard?

<body> 
<div id="fb-root"></div> 
<script> 

    window.fbAsyncInit = function() { 

    FB.init({appId:'xxxxxxxxxxxxxxxxxx', 
    channelUrl:'//www.example.com/channel.html', 
    status:false, 
    cookie:true, 
    xfbml:false}); 

    FB.getLoginStatus(function(response) { 

     if(response.status === "connected") { 

      var facebookUserID = response.authResponse.userID; 
      document.getElementById("facebookUserIDDiv").innerHTML 
      = facebookUserID; 
     } 

    }, true); 

}; 

(function(d){ 
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
if (d.getElementById(id)) {return;} 
js = d.createElement('script'); js.id = id; js.async = true; 
js.src = "//connect.facebook.net/en_US/all.js"; 
ref.parentNode.insertBefore(js, ref); 
}(document)); 

</script> 
<form> 

    <div id="facebookUserIDDiv"/> 

</form> 
</body> 

Répondre

0

changement status:false, à status:true,. Cette status -

vérifier l'état connexion

0

j'étais si triste. J'ai même abattu une bouteille pleine de scotch. La vie s'écroulait ...

Je l'ai compris finalement. J'ai été vraiment surpris de savoir pourquoi Facebook ne permettra pas Javascript. Il s'est avéré que je devais sécuriser mon URL de toile. J'ai donc téléchargé le certificat SSL et mis à jour le tableau de bord de l'application Facebook avec l'URL de canevas sécurisée.

Assurez-vous également que vous ne spécifiez pas http: // ou https: // lors de la demande de contenu. Il suffit de spécifier //, et le bon protocole sera utilisé pour la requête. Ce qui signifie que si la page a été demandée en tant que page sécurisée, toutes les ressources supplémentaires demandées dans la page seront automatiquement demandées en tant que https. Et si la page a été demandée en utilisant juste http, alors les mêmes ressources demandées à partir de la page seront demandées en utilisant le protocole http automatiquement.

Questions connexes