Je souhaite utiliser le plug-in de partage facebook pour l'application Web sur laquelle je travaille. Je n'ai besoin que du bouton de partage de base. L'application utilise requirejs pour le chargement de javascript. J'ai donc suivi le how-to et changé l'URL de l'API facebook en celle trouvée dans les extraits de code sur Facebook docs . Cela ne fonctionne pas et le sdk renvoie l'erreur invalid version specified
. Voici à quoi ressemblent mes fichiers.
main.js
require.config({
shim: {
'facebookshare' : {
exports: 'FB'
}
},
paths: {
'facebookshare': "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.0"
}
});
require(['fb']);
fb.js
define(['facebookshare'], function(facebook) {
document.body.innerHTML += '<div class="fb-share-button" data-href="https://developers.facebook.com/docs/plugins/" data-layout="button"></div>';
});
Quel est le meilleur moyen d'inclure uniquement le plug-in de partage facebook avec requirejs?
Je me suis référé aux questions suivantes, mais aucune d’elles n’apporte de solution concrète. Erreur non capturée: aucune version spécifiée et erreur de version incorrecte .
J'obtenais également l'erreur suivante même lorsque j'utilisais le code d'intégration standard fourni par Facebook.
Erreur non capturée: version non spécifiée spécifiée dans sdk.js
La première chose à vérifier est que vous incluez le numéro de version dans votre appel FB.init
:
FB.init({
appId: 'your-app-id',
xfbml: true,
version: 'v2.8'
});
... était de faire un simple Tweak et a changé le chemin:
From: //connect.facebook.net/en_GB/sdk.js
To: //connect.facebook.net/en_GB/all.js
Et cela a corrigé l'erreur. Malheureusement, je ne sais pas pourquoi. :-(
Envisagez d'inclure un paramètre version
à la propriété src
comme indiqué ci-dessous:
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8"
Le modèle par défaut du bouton J'aime pour Web est incomplet; En cliquant sur le bouton "Obtenir le code", Facebook vous générera un modèle complet avec le paramètre version
inclus.
Heads-up mineur, je devais changer
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1
&
version=v2.8";
à
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1
&
version=v2.8";
J'ai rencontré ce problème lorsque je changeais mon fichier de HTTP à HTTPS. La raison était le manque de "HTTP:" ou "HTTPS:" spécifique dans le code suivant:
<div class="fb-comments" data-width="100%" data-href="//amazingjokes.com/image/2017-03-17/A_good_sign_for_St__Patricks_day" data-num-posts="5"
data-colorscheme="light">
</div>
normalement, '//domain.com' copie le schéma sur lequel nous nous trouvons. Ainsi, lorsque vous êtes sur htts: //example.com, un lien vers '//example2.com' apparaîtra comme ' https: // example2.com '. Pour les 'commentaires-fb', vous aurez besoin d'indiquer spécifiquement HTTP ou HTTPS pour data-href.
Notez également que ' https://example.com ' selon Facebook est une autre page que ' http://example.com '. Donc, si vous mettez à niveau votre site pour SSL, vous perdrez tous les commentaires précédents si vous modifiez l'URL dans les plugins sociaux de HTTP à HTTPS ... La solution que j'ai choisie consistait à utiliser HTTP pour toutes les anciennes publications et HTTPS pour toutes les publications récentes
Il existe (ou existait) une erreur dans le code source du Configurateur de bouton de partage Facebook ! page. Si vous utilisez le configurateur de partage sur la page, cela devrait fonctionner correctement. Toutefois, un exemple de code sur la page indique "Copiez et collez l'exemple de code sur votre site Web ...", ce qui est un code incorrect et le bouton ne sera pas visible sur votre page. La console javascript affichera «Erreur: version non valide spécifiée».
J'ai ouvert un ticket avec Facebook en juin 2018 concernant ce problème. Ils ont reconnu qu'il s'agissait d'un problème de code et ont promis de corriger l'exemple de code, mais à partir du 17 juin 2018, le code erroné est toujours présent sur le site.
J'espère que cela t'aides.