Ho trovato questo post e ho cercato di implementare i passaggi di cui sopra. Dopo aver perso qualche ora ho visto il commento di @SMT sopra ...
Non ho più funzionato nella v2.10.
Il mio cliente era già in attesa di questa funzione, quindi ho dovuto trovare una soluzione alternativa. Nota: ho scritto questa soluzione per WordPress, quindi è possibile modificare alcune righe per farlo funzionare sul tuo sito.
Cominciamo con il mio codice HTML un involucro contenente l'immagine e il pulsante:
<div class="my-image-container">
<img src="http://example.com/image.jpg">
<a href="#" class="fb-share-image">Share</a>');
</div>
Nel mio codice JS aggiungo l'URL dell'immagine come parametro per l'URL che voglio condividere :
window.fbAsyncInit = function() {
FB.init({
appId : 'YOUR APP ID',
status : true,
cookie : true,
version : 'v2.10'
});
$('.fb-share-image').click(function(e){
e.preventDefault();
var image = $(this).siblings('img').attr('src');
FB.ui(
{
method: 'share',
href: $(location).attr('href') + '?og_img=' + image,
},
function (response) {
}
);
})
};
(function(d, s, id){
var js, fjs = d.getElementsByTagName(s)[0];
if (d.getElementById(id)) {return;}
js = d.createElement(s); js.id = id;
js.src = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
Il passaggio successivo consiste nel gestire il parametro URL. Questo codice è per WordPress e WordPress SEO di YOAST ma puoi semplicemente cambiarlo per lavorare con il tuo CMS. Aggiungi questo al vostro functions.php:
add_filter('wpseo_opengraph_image',function($img){
if(array_key_exists('og_img', $_GET))
return $_GET['og_img'];
return $img;
});
add_filter('wpseo_opengraph_url',function($url){
if(array_key_exists('og_img', $_GET))
return $url . '?og_img=' . $_GET['og_img'];
return $url;
});
L'idea generale è quella di creare un URL individuale per ogni immagine che cambia solo i parametri OG così Facebook deve raschiare ciascuno di essi singolarmente. Per evitare problemi di SEO dovresti avere un tag canonico nell'intestazione che punta all'URL originale. Ecco lo complete article.
Questo strumento di debug della cache lo ha risolto, grazie :) –