Links de redes sociais dinâmicas (“Compartilhe esta página”)

As redes sociais estão deixando de permitir que as páginas sejam publicadas diretamente, com informações pré-pendentes. O Facebook está removendo sharer.php, por exemplo.

Esta é a solução alternativa que eu criei. Para o Facebook, você precisará registrar um aplicativo do Facebook para que isso funcione. Para o Twitter, parece que você precisa ter uma hashtag para que isso funcione corretamente. Não tenho certeza do porquê.

Este exemplo é dependente de jQuery.

var socials = ['twitter', 'facebook', 'pinterest', 'email'],
link
= window.location.href,
title
= $('.title').text(),
li
;
for (var i = 0; i < socials.length; i++) {
li
= $('<li></li>')
this.dom.items[socials[i]] = $('<a></a>')
.addClass('socials-link '+socials[i])
.attr('data-action', socials[i])
.attr('target', '_blank');

switch (socials[i]) {
case 'facebook':
this.dom.items[socials[i]].attr('href','https://www.facebook.com/dialog/feed?app_id=<<YOUR APP ID HERE>>&link='+link+'&redirect_uri=http://root-url.com');
break;
case 'twitter':
this.dom.items[socials[i]].attr('href','https://twitter.com/intent/tweet?hashtags=<<your hash>>&original_referer='+'http://root-url.com'+'&related=<<name>>&tw_p=tweetbutton&url='+encodeURIComponent(link));
break;
case 'pinterest':
this.dom.items[socials[i]].attr('href','http://pinterest.com/pin/create/button/?url'+link+'&amp;media='+postthumbsrc+'&amp;description='+title);
break;
case 'email':
this.dom.items[socials[i]].attr({'href': 'mailto:?subject='+title+'&body='+link});
break;
}

li
.append(this.dom.items[socials[i]]);
this.dom.parent.append(li);
};