Dynamic socials links ("Share this Page")
Social networks have been moving away from allowing pages to publish directly, with pre-pended information. Facebook is removing sharer.php, for example.
Here's the workaround I've come up with. For Facebook, you'll need to register a Facebook application in order for this to work. For Twitter, it seems that you have to have a hashtag for this to work properly. Not entirely certain why.
This example is jQuery dependent.
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+'&media='+postthumbsrc+'&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);
};
Written by Garrett Amini
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Twitter
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#