How to add a Facebook "Like" button with full functionality? - facebook

I'm trying to add a Facebook "Like" button and I'm using a free extension for it but it's giving me an error as they are not compatible with Magento version 1.5.
I'm trying to do it manually but a little help which I found was to get a Facebook developer code and paste in static URL etc.
...but I didn't understand that.
So can you kindly tell me how to do what I want? From where do I get which code and where to paste please?

Go to http://developers.facebook.com/docs/reference/plugins/like/ and obtain the proper code for your site. (It will generate iframe HTML code that you need to copy)
Determine where you want to show the like button, options are: all pages, product view, category view, etc...(your choice)
For example if you want it on product page, then you need to add the previously generated HTML to the catalog/product/view.phtml template.
If you want the url that needs to be liked to be fixed:
<iframe src="http://www.facebook.com/plugins/like.php?href=http://yoursite.com?other_params_go_here"></iframe>
If you want the url to be the current one:
<iframe src="http://www.facebook.com/plugins/like.php?href=<?php echo $this->helper('core/url')->getCurrentUrl(); ?>?other_params_go_here"></iframe>

you need login Facebook account panel & create your own code for your website
then you can paste code in any block template .
if you can not template you can login magento admin panel to enable development mode

I have written a full tutorial here that will show you the best way to add Like Buttons and automatically populate fb Open Graph meta tags with your Magento product information for every product (or category pages) using best practice methods with either XFBML or iFrames.
tested with all versions of Magento.
http://blog.gaiterjones.com/magento-social-media-marketing-facebook-like-button/

It is always advisable to use an module.
There is a 3-in-one module available for Social sharing. i.e. Google+1 Button, Facebook LIke and Twitter Share.
you can check it at magento connect
http://www.magentocommerce.com/magento-connect/Modulesoft/extension/7258/google_1_plus_button_with_facebook_and_tweet
Hope the information is helpful

<div id="fb-root"></div>
<script>(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#xfbml=1&version=v2.8&appId=157602984730324";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<div class="fb-like"></div>

I added a Facebook plugin at a front page, see it here: http://www.boardcorner.se on the right side.
By adding a piece of code in the TinyMCE javascript it allows the Facebook iframe to be inserted by a standard copy & paste.
You'll find the piece of code needed here: Magento - How to allow certain tags (iframe, embed) in Magento's CMS editor?

Try this for product detail page
<div id="fb-root"></div>
<script src="http://connect.facebook.net/en_US/all.js#appId=181097698614858&xfbml=1"></script>
<fb:like href="<?php echo $_product->getProductUrl() ?>" send="false" show_faces="false"></fb:like>

Related

Facebook comments module doesn't show comments on desktop

I'm quite puzzled here. I have facebook comments on this site and I can see in the moderation section that comments are going through fine. However when I load the page on desktop (or tablet, we server the same version of the page to tablets) it says 0 comments.
If you load the page on mobile (or even simulate phone on Chrome), the comments show up fine.
I have no idea how to even start to debug this, any ideas?
Example page with comments: removed due to solved
Has anyone had a similar problem? I mean probably the problem is somewhere in the code, but I just can't pinpoint it for the life of me. I have all the FB meta tags that are needed, I have the
<div id="fb-root"></div>
<script>(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#xfbml=1&appId=<?php echo($options["theme"]["facebook_app_id"]); ?>&version=v2.0";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
and then finally the form itself
<div class="fb-comments" data-href="<?php the_permalink(); ?>" data-width="100%" data-numposts="50"></div>
all these copied straight from the developer.facebook tools except the app_id (I have multiple sites that use the same code). I even tried to hard code the appids in place but that didn't help.
All help really appreciated.
edit: Thought that maybe it's just me and went ahead and installed Facebook Comments by Fat Panda plugin, but the problem persists. No comments on desktop, only works on mobile.
When I emulate a mobile device (I chose Google Nexus 4 at random) in Chrome, the data-href attribute of the <div class="fb-like"> element is set to
http://www.suomikiekko.com/2014/08/ilja-kovaltshuk-ei-nimea-jokereita-pietarin-skan-paavastustajaksi/
– same address as the article I’m viewing.
When I view the site in desktop mode however, the data-href attribute of the comments plugin is set to
http://www.suomikiekko.com/2014/09/tassa-on-jokerien-historiallisen-khl-kauden-kapteenisto/
– so that seems to be the URL to a completely different article. The URL in the address bar is still the first one though, and the content seems to be the same as in the mobile view as well.
And of course, different URLs mean different Open Graph objects that the comments are associated with.
I can not actually look at the source code when in mobile emulation mode, so that data-href value is only what I see in DOM inspector – but I would assume that it is not the comments plugin that messes with this, but rather that your site is doing some kind of desktop/mobile detection and delivering different HTML based on that. So I’d suggest you investigate further in that direction – try and figure out what could possibly make your CMS deliver a wrong data-href attribute when the page is viewed on desktop.

facebook share button not reading og tags

I have this code to make Facebook share, but this doesn't read my og meta tags. Putting in the Facebook debugger it reads fine.
<h2 class="caixacsstitulo"><%# Eval("titulo") %>
<div class="fb-share-button" data-href="http://www.novaonda.no-ip.info:8080/detalhe_noticia.aspx?id=<%# Eval("id") %>" data-type="box_count">
</div>
<asp:Image ID="Image3" runat="server" Width="32px" ImageUrl='<%# Eval("destaque") %>' Height="32px" ImageAlign="Right" /></h2>
You can access it here
Facebook officially deprecated the share button in favor of the like button earlier this year. A few days ago, I realized that the share button no longer displays on sites I manage. Trying to figure out what could be wrong, I checked those sites using a different browser and it was the same. Still in doubt, I used a different PC and even checked other websites just to be sure.
Across the web, a certain version of Facebook share button stopped working. The Share Button has been deprecated already a while ago but not yet completely dead. If it stops working on your website or blog, you only need to update your code.
Facebook deprecated the Share button on February 28, which means they no longer recommend its use in applications or on external web sites. Also, a certain version of Facebook share button was deprecated several years ago, and Facebook switched to serving the new JS SDK in its place on Monday, July 16. Perhaps the old one will be brought back to life later, but then I guess it’s time to upgrade to the new version. Support has already been dropped for it so there’s no point complaining to Facebook.
How to fix your share button
I prefer using the share button because it lets me share to my fan pages, unlike the like button which Facebook now favors. I found three fixes to this which I think should do the trick.
1. Using the official JD SDK version
Search for http://ogp.me/ns/fb#” just after it. The resulting code should lok like this:
"
If this is already there, you don’t need to do it again.
- In the body of your website where you want the code to display, paste this:
<div id="fb-root"></div>
<script>(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/all.js#xfbml=1&appId=YOUR_APP_ID"; // appId must be valid
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
<fb:share-button type="box_count">
</fb:share-button>
Hey, make sure you change these parameters for the code to work:
* YOUR_APP_ID – You must create a facebook application for this code to work. Don’t know how? I explained it on steps 1 and 2 of this post.
* You can change box_count to button_count if you want a smaller button instead of the large one with counter.
Those who have copied the code and pasted on the web page we need to add the class attribute "class="fb-share-button" " to the div that will show the Share button. The automatically generated code from the Facebook is missing this attribute, and that is it does not display the facebook button.
Also, the button appears when the page is loaded or viewed from a web server. If you preview web page on the local computer the while designing it does not show up.
Third thing that you need to check is that there are no errors in loading the js "//connect.facebook.net/en_US/sdk.js#xfbml=1&version=v2.5"//
I'm using bellow code, works well for me
<script src="//connect.facebook.net/zh_TW/sdk.js#xfbml=1&version=v2.8"></script>
using above code instead of Facebook share-button step 2:
<div id="fb-root"></div>
<script>(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/zh_TW/sdk.js#xfbml=1&version=v2.8";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>

Adding Facebook plugin comments for dynamic products

I installed facebook comments on my website. My website is a dynamic website and pages are like this www.example.com/page?id=54, www.example.com/page?id=67.
If I post a comment in this page: www.site.com/page?id=54, it also appears in www.example.com/page?id=67. The comments are not unique for a page, but appear in every page
i saw the question : Facebook comments, for each page.
The answer in this question is that the problem is because of the "?" sign.
It seems that "?" sign in the URL make it broken for the Facebook plugin.
And I need to change form of URl writing.
Because my website is 7 years old have incoming links to it, I don’t want to change the method of the URl writing .
is there another way to fix it?
Firstly, copy comment div and script from Facebook, paste it to your product details page:
<div id="fb-root"></div>
<script>(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/all.js#xfbml=1&appId=114215202075258";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
and
<div class="fb-comments" data-href="http://example.com" data-width="470" data-num-posts="3"></div>
Finally, simply add this code:
<script>
$(".fb-comments").attr("data-href", window.location.href);
</script>
If you're using PHP this is the code which will request the URL of the current page and then link Facebook comments to it:
<?PHP
$url = $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
echo "<div class='fb-comments' data-href='$url' data-num-posts='10' data-width='470'></div>";
?>
It works if your dynamic content has only one query string (for example ?product=). If it has more query strings for the same page, for example &sort= for sorting options, then it won't work properly as the Facebook comment which would appear on sorting option ascending wouldn't appear on the sorting option descending, for example.
You can solve this part by assigning a base URL for that product and then showing the FB comments for that URL on all dynamic pages with that product. For example, you're requesting FB comments for the page ?product=13&sort=asc&type=34 even if &sort and &type are different on that page.
When inserting the widget to your page you add something similar to the following code:
<div class="fb-comments" data-href="http://example.com" data-num-posts="2" data-width="470"></div>
You need to replace http://example.com each time for the new page, once with ?id=54 and another time with ?id=67 for each relevant page.
Hmm, I'm confused. You say the site is 7 years old and you cannot change it, but somehow you recently inserted the like plugin into an unchangeable web site. Now you want ways to fix this unchangeable website.
But, if you could change the website, here's what you're going to need to do:
Put in the required og meta tags into the <head> section of each web page as described on the like plugin documentation web site. You can do this programmatically via the query string parameter using your .asp coding skills.
Test/QA the OG meta tags are correctly specified at https://developers.facebook.com/tools/lint
Add the required html code for the plug in and ensure the href correctly and fully identified in the data-href parameter of the like plug
Test/QA the like button by viewing source on the page being sent down.
EDIT
Take a look at what Facebook sees for your url
http://developers.facebook.com/tools/debug/og/echo?q=http%3A%2F%2Fwww.winebar.co.il%2Fproduct.asp%3Fproductid%3D567%26CatCode%3D182
Notice the plugin code
BAD: data-href="http://winebar.co.il/product.asp?productid="
If should look like the URL in the user's browser bar:
GOOD: data-href="http://www.winebar.co.il/product.asp?productid=567&CatCode=182"

Javascript for Facebook Like

I am trying to add a facebook like button. I am using the standard XFBML code generated from developers.facebook.com. However, here's the problem: Say my use case is that mail will be sent to customers which will have a link to like my site. Now since you cannot include javascript in emails I have to redirect the user to an intermediate page, which hosts the like button. When the user clicks it he will be either asked to login or will be asked to like it.
I am looking for a way to automatically click the like button when the user clicks on the link from his email. So basically auto-liking the page when he clicks from his email, so that he does not have to click twice - (once on the email link and once on the like button on the intermediate page).The code that I am using is:
<div id="fb-root"></div>
<script>
function f1(d, s, id) {
alert('Function Called');
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/all.js#xfbml=1&appId=171216266453";
fjs.parentNode.insertBefore(js, fjs);
}
</script>
</head>
<body onLoad="f1(document, 'script', 'facebook-jssdk')">
<div class="fb-like" data-href="http://www.google.com/" data-send="false" data-width="450" data-show-faces="true"></div>
</body>
</html>
AFAIK You cannon automatically click on Like Button on page visit. But you may consider an option of usage iframe version of like button.
Be warned that most online email providers will block it by default and may or may not allow to enable it optionally.
As for JavaScript solution it will be probably stripped out (or user will be warned in bad way) by most email providers and email clients.
Auto liking is not possible for like button. Embedding iframe also will be stripped off due to security reasons.

How I'll Put fb like plugin into Drupal homepage?

I want to add a facebook like social plugin into my Drupal
website. But I'am unable to find the file in which I'll
write the plugin code. Please help me.
You don't need to add any code there is already a module for this http://drupal.org/project/fblikebutton
Simply install the module in your drupal instance.
Cheers,
Vishal
In page.tpl.php between insert this analog with your appcode from facebook
<div id="fb-root"></div>
<script>(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_EN/all.js#xfbml=1&appId=YOUR_APP_NUMBER";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));</script>
And in place for Like button insert/ For example inser this in block with PHP filter
<div class="fb-like" data-href="http://yoursite.com/<? echo $_SERVER["REQUEST_URI"]; ?>" data-send="false" data-width="450" data-show-faces="false" data-colorscheme="dark"></div>
FB like button and like box are different.
Like button is to "like" a single page and it comes with an optional inline counter. But Like box is to show who other likes a particular Facebook page. It's appearing as a box.
You can grab the like box code from your facebook page admin UI and put it in a custom block.
http://drupal.org/project/fb_social is a good module that gives a lot of facebook elements.
Facebook like button code - https://developers.facebook.com/docs/reference/plugins/like/
Facebook like box code - https://developers.facebook.com/docs/reference/plugins/like-box/
Add a fb like button - http://drupal.org/project/fblikebutton (or edit node.tpl.php), http://drupal.org/project/sociallinks
Add fb like box - Custom block, http://drupal.org/project/fb_social or page.tpl.php (I recommend to not do this unless this you have a very good understanding in theming. Less configurable)
Like box should be a module. Like button is a node-element.