Ik wil de Facebook Share-plug-in gebruiken voor de web-app waaraan ik werk, ik heb alleen de standaard Share-knop nodig. De app gebruikt requiredjs voor het laden van javascript, dus ik volgde de how-toen veranderde de facebook api-url naar die gevonden in codefragmenten op facebook docs. Dit werkt niet en de sdk geeft de fout invalid version specified
. Zo zien mijn bestanden eruit.
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>';
});
Wat is de beste manier om alleen de Facebook Share-plug-in met requiredjs op te nemen?
Ik verwees naar de volgende vragen, maar geen ervan biedt een concrete oplossing. Ongevangen fout: geen versie opgegevenen foute versiefout.
Antwoord 1, autoriteit 100%
Ik kreeg ook de volgende foutmelding zelfs bij het gebruik van de standaard insluitcode die Facebook biedt.
Ongevangen fout: ongeldige versie opgegevenin sdk.js
Het eerste dat u moet controleren, is dat u het versienummer opneemt in uw FB.init
-aanroep:
FB.init({
appId: 'your-app-id',
xfbml: true,
version: 'v2.8'
});
De inmiddels verouderde oplossing…
…was om een simpele aanpassing te maken en het pad te veranderen:
From: //connect.facebook.net/en_GB/sdk.js
To: //connect.facebook.net/en_GB/all.js
En hiermee is de fout verholpen. Ik heb helaas geen idee waarom. 🙁
Antwoord 2, autoriteit 58%
Overweeg om een parameter version
op te nemen in de eigenschap src
, zoals hieronder weergegeven:
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.8"
De standaardsjabloon op Vind ik leuk-knop voor webis onvolledig; door op de knop “Code ophalen” te klikken, genereert Facebook u een volledige sjabloon met de parameter version
inbegrepen.
Antwoord 3, autoriteit 6%
Kleine waarschuwing, ik moest me omkleden
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1
&
version=v2.8";
naar
js.src = "//connect.facebook.net/en_US/sdk.js#xfbml=1
&
version=v2.8";
Antwoord 4
Ik kwam dit probleem tegen toen ik mijn bestand van HTTP naar HTTPS aan het veranderen was. De reden was het ontbreken van specifieke “HTTP:” of “HTTPS:” in de volgende code:
<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>
Normaal gesproken kopieert de ‘//domain.com’ het schema waarin we staan, dus wanneer je op htts bent: //example.com een link naar ‘//example2.com’ zal zien als ‘https://example2.com ‘. Voor de ‘FB-OPMERKINGEN’ moet u specifiek HTTP of HTTPS opgeven voor de Data-Href.
Merk ook op dat ‘https://example.com ‘ volgens Facebook is een andere pagina dan ‘http://example.com ‘. Dus als u uw site voor SSL upgrade, verliest u alle reacties in het verleden als u de URL in de sociale plug-ins van http naar https verandert … De oplossing die ik kies, was om HTTP voor alle oudere berichten en HTTPS te gebruiken voor alles recent