Facebook Connect Magento Extension

Facebook Connect Magento Extension

This is free Facebook Connect Magento extension which enables customers fast and easy registration and login with their Facebook identity.

This extension isn’t actively updated anymore. For newer Magento you can use separate Social Connect Magento extension from my coworker Marko Martinovic, Inchoo.

Important

Facebook updated it’s authentication mechanism but so did we, so please update your extension to the newest version since older versions won’t work anymore.
Also, if you’re getting “An error occurred. Please try again later.” message in connect popup, you need to get new “App ID/API Key” from Facebook and enter it into Magento. Check your Application Secret along the way.

Download

Download Inchoo_Facebook-0.9.9.zip, extract files to appropriate place following directory structure and reload cache.
Latest pre-relase versions can always be downloaded on my github project page.

About

Facebook Connect Magento extension enables customers one click registration and login with their Facebook identity. It automatically registers new users and logs in existing ones.

Current extension is compatible with latest Magento CE 1.6, but also with older 1.5, 1.4 and 1.3.2.x versions. It’s using brand new Facebook thingies like open graph protocol and open source JavaScript SDK.

If you’re interested to see additional languages in future releases, help us translate it by following instructions.

Facebook App

For Facebook Connect to work you need to Setup Application on Facebook and obtain its App ID/API Key and Application Secret.

Use your store name as application name and read and accept terms of service. On second screen set App Domain and Site URL(under checked Web Site tab), both to the store domain where you plan to implement Facebook Connect. Save Changes. Other Connect settings are optional, but you might want to add store logo for example.

Magento Setup

Once you obtain two keys navigate to Magento Administration, copy/paste them to appropriate fields under Configuration->Customer->Facebook Connect, set Enabled to Yes and you’re good to go. If you’re updating from previous releases, you also need to Enable it to work.

Default template files (frontend/default/default/template/facebook/*) and layout (layout/facebook.xml) makes Facebook Connect work out of the box with default theme, but we tried to make customizations as easy as possible so all you need to do is add button or link with “facebook-connect” rel attribute set anywhere in the theme, static block or cms page, for example:

<button rel=”facebook-connect” class=”form-button” type=”submit”><span>Connect with Facebook</span></button>
<a rel=”facebook-connect”>Connect with Facebook</a>

Latest Changes

v.0.9.9
– Client and javascript compatible with new Facebook authentication changes.
– Event.fire changed to document object to avoid javascript conflicts.
– Asking for user_birthday permission from now on.
– Norwegian translation added thanks to Magnus Alexander.

v.0.9.8
– Version fix, licenses added, connect release.

v.0.9.7
– Estonian, Swedish, Czech, Turkish and Korean translations added thanks to Sir Mull, Andreas Karlsson, Pavel Hrdlicka, ea and COBAY.

You made it all the way down here so you must have enjoyed this post! You may also like:

Social Connect Magento extension Marko Martinovic
Marko Martinovic, | 399

Social Connect Magento extension

Google Connect Magento extension Marko Martinovic
Marko Martinovic, | 60

Google Connect Magento extension

Building a “Facebook Like” button extension for Magento in 15 minutes Branko Ajzele
Branko Ajzele, | 9

Building a “Facebook Like” button extension for Magento in 15 minutes

608 comments

  1. @Matthias Zeis: Ok, thanks for the info ..

    @ivan balabanov: There is new Enabled: Yes/No option and it’s disabled by default, maybe that’s the problem. Under Configuration->Customer->Facebook Connect, set Enabled to Yes.

  2. Hello there,

    Here is the Bulgarian translation (BG) – http://pastie.org/1909153

    I am using Magento 1.4.1.1 with previous version of Inchoo Facebook Connect. After replace with the new one via ftp it is not working. I will roll back the old version and will wait for Magento Connect to be ready.

    Is there something more I need to do after the ftp upload to make it work?

    Thank you.

  3. Thank you all for helping out. All posted languages will be included in next release.

    Quick question, does it make sense to include/activate admin translations for this kind of things or frontend only. What do you all think ?! How many of you are using translated admin interfaces ?

    @Matthias Zeis: Yes, I thought pastie will be good cause of that “paste again” feature ..

  4. The workflow using Pastie is a nice idea. 🙂

    I did another German translation. It isn’t a replacement for Simons version but an alternative translation. In German, there is a casual form of “you” (Du) and a formal version (Sie). Simon did the casual form, I did the formal version.
    http://pastie.org/1900669

  5. Now that I have this working and have been playing with it for a while, I’m wondering what the value in having this feature is?

    The user is still required to enter a generated password in order to actually login to the site, their Facebook account doesn’t really log them in, all I can see that it does is save the user from filling out the account creation form…..correct me if I’m wrong?

    Some could argue that it provides the store owner with a another avenue of gathering information on their visitors, but in the end there is still no added value to the user. I think (based on my personal opinion) a user would be more apt to sign up for a newsletter or follow the store on Twitter before allowing me access to their Facebook account, a lot of people are very cautious about this because of other similar systems that abuse the privilege and post crap all over their walls…..

    Because of the products I sell there is no reason for a user to create an account ever, there would be no added value in them having an account, other than providing me with information I get at checkout anyways. This will obviously be different for other store owners, people who track shipments or sell software etc.. the user benefits from creating account.

    Don’t get me wrong I think this is a great extension, I just don’t see the added value for the end user to provide me with access to their Facebook account? I’m open to any suggestions on how I might benefit from using this in my situation, or maybe my facts are all wrong?

    Either way, just thought I’d give my 2 cents, keep up the great work Inchoo!!!

  6. @Dino, @Roberto: Ok, I’m impressed 😯 !!! I didn’t expect this kind of response so soon. Yeaaaaa, community in action. Keep up the good work !!

  7. I see that you are going to include all the interface in the locale file. Thats great 🙂

    Spanish translation ( es_ES ):

    http://pastie.org/1894471

    There is a duplicate sentence in the translation file.

    I hope to see a lot of language files soon! Come on guys!

  8. Hey Ivan i translated it to Portuguese – Brazil (pt-br), here is the link:

    http://pastie.org/1894463

    PS: there is a duplicated translation row for “Your Facebook account has been successfully connected. Now you can fast login using Facebook Connect anytime.”

    I already removed the duplicated row from my translation!

  9. There we go, if anyone want’s to see it’s native language in future releases help us with translation:

    1. Open this link:
    http://pastie.org/1894306

    2. Click “paste again” link on the right

    3. Translate sentences after comma separator (left sentence needs to be in English, right one in your language)

    4. Click “Save Paste” button at the bottom

    5. Copy url from your browser and paste it here in comments along info which language that is (url looks like the one I provided in step 1)

    When I manage to collect decent number of translations, I’ll include them in release.

    Thanks !!

    p.s. In “Thank you for registering with %s” %s will be auto replaced by your store name set in Magento like “Thank you for registering with Inchoo Playground Store”

  10. I would like to add translations.

    I’ll prepare english csv file and post it here. Our readers are from all over the world, I hope they would be willing to help 🙂

    I’ll add Croatian one, lol.

    Thanks for support and idea !!

  11. I love this extension 🙂 Works great. Thank you!

    Mi little contribution to it. I’ve modified the extension to get the top.link translated to the locale languages. Maybe it should be interesting to you for next releases.

    Steps:
    1.- [b]Set the language file in module config[/b]. Edit [b]app/code/community/Inchoo/Facebook/etc/config.xml[/b] and add the following code into the frontend section:

            <translate>
                <modules>
                    <Inchoo_Facebook>
                        <files>
                            <default>Inchoo_Facebook.csv</default>
                        </files>
                    </Inchoo_Facebook>
                </modules>
            </translate>

    2.- [b]Edit the current layout to load the translation.[/b] Edit the file [b]/app/design/frontend/default/default/layout/facebook.xml[/b] (or maybe better copy this file to your template folder and edit from there). Replace the code:

    		<reference name="top.links">
    			<action method="addLink"><label>Connect with Facebook</label><url helper="facebook/getConnectUrl"/><title>Facebook Connect</title><prepare/><urlParams/><position>110</position><liParams/><aParams><rel>facebook-connect</rel></aParams></action>
            </reference>

    With:

    		<reference name="top.links">
    			<action method="addLink" translate="label" module="facebook"><label>Connect with Facebook</label><url helper="facebook/getConnectUrl"/><title>Facebook Connect</title><prepare/><urlParams/><position>110</position><liParams/><aParams><rel>facebook-connect</rel></aParams></action>
            </reference>

    3.- [b]Create the language file in your locales folder.[/b] For example if you want the module translation to spanish_Spain create the file [b]/app/locale/es_ES/Inchoo_Facebook.csv[/b] with the following content:

    "Connect with Facebook","Conectar con Facebook"

    You should create the file for all the languages that you have active in your site.

    Hope this helps.

    Thank you again for this extension.

  12. justJust got it to work! the problem was that i messed up something in the installation process.

    There still one little thing that is really annoying me, when i get to the login page and hit “connect with facebook” it redirects me to the dashboard page instead of redirecting me to the home page… does anyone know how to change it? tks

  13. I am using magento 1.5.0.1 and i cant use this line of code:

    Connect with Facebook

    to generate the facebook login link, i would need it in a xml format so i can use it? how could i do it? can anyone help me?

  14. I wonder is there any simple option to display user’s facebook avatar when he gets logged in? I don’t need to store it on db, just display. Thanks in advance!

  15. Hi Ivan,

    This 094 version works on my two sites 🙂 on, mage CE version 1.500 and 1.501 with no errors. Did test in IE, ff and chrome

    Do you know there are commercial versions of this extension?

    Thanks for true open source you guys from inchoo do!

    Keep up that way

  16. I love this extension it’s such an easy way for users to create an account, only problem I have is that I’m the only person it seems to work for?

    I’ve successfully used it on 2 separate PC’s using FF and Chrome, but anyone else that tries just gets the error message?

    Anyone know why this would happen?

  17. You’r right, posting wall is not the subject off this extension but when we got permission we might write customers wall when ever we want in the future. I’m using this extension and my customers just giving me their email now. In near future i will arrange sth to post their wall but i can’t able to post my first customer’s wall. i want to put permissions to my pocket 🙂

  18. I’m not sure is it even possible to post to customers wall as application admin if customer granted publish_stream (post to wall) permission to application ?! I think it can be done only through api-s, that’s why is useless to just add permission. Please correct me if I’m wrong ..

  19. Hi Ivan you’re right, if some coder need to add new features he could easily add needed permission grants. But i can’t 😀

    I know turkish customers are just clicking “allow” when this popup shows. So i want to write something to their wall 🙂 Is this an abuse. May be. But it’s also a war between other e-commerce web sites and mine.

    Code is checking valid email i guess, so i think it can check gender or birthday. If facebook returns not valid birthday and gender. code should say “ok, it’s your call”.

    But if customer gives those permissions , why couldn’t i use it.

  20. Hi,
    I am getting the below error:

    Invalid attribute name: facebook_uid

    I am running on magento 1.3.2.

    Any help would be appreciated.

    Thanks.

    Regards,
    Ritesh

  21. I was thinking about it really, but I didn’t see the point because current functionality of the module (login/registration) doesn’t require nothing except e-mail permission, so why ask for it. And if someone customize module and add some new functionality, he’ll just easily add new permission, like I did for several clients.

    If I introduce some new features in next versions, fb popup will just ask customer for missing permission on first connect.

  22. Thank you for locale settings 🙂

    You should add wanted permissions preferences i think. I really don’t like new way. (just email why??)

  23. Hello all,

    I just “pushed” new and improved 0.9.4 version with many improvements and some new features (new graph apis, asynchronous loading, fb language settings, etc.) to my github account.

    https://github.com/ivanweiler/Inchoo_Facebook/
    https://github.com/ivanweiler/Inchoo_Facebook/blob/master/HISTORY.md

    It’s still in testing phase, but it would be great if someone is interested to try it out. I believe everything works, but don’t recommend production environments before official release.

    As you can see in changelog, I took into consideration and implemented many things you all mentioned in comments here 😉 Thanks for the input !!

    Regards,
    Ivan

  24. Excellent job. Thank you. I need one more thing please let me know how do i add locale.

    I need to send “locale%3Dtr_TR” to fb instead of “locale%3Den_US”

    Also who suffers from chrome and safari button problems check my site and copy inline style options that my button has. I copied from another site and taaa daaa it works.

  25. Secound problem:

    The user is logged in (via facebook) and show your name correctly in account information, but the checkout page empty the first and last name. (so the user can type, when the system is stored somewhere).

  26. update:

    the header linking work chrome and firefox.

    Only the customer/account/login/ facebook login not work in chrome.

    thank you

  27. Thank you for development. It’s work, but:

    Linux Firefox:

    The first login via facebook only on customer/account/login/ login page work. (in header link not work, but the secound login work with header link 🙂

    Unfortunately in Chrome not work the customer/account/login/ login page connection, and the first login not work the header link.

    magento 1.4.2, php 5.2.14

    how to solve this problem? (chrom and first login in header)

    thank you

  28. @Bart, check your application api key and application secret, because for me everything is working well after changing definitions of __get and __call methods. Thanks @pishkus!

  29. @pishkus tnx for the tip, I don’t get the fatal error anymore, but there is now a new error in a red box:
    “Facebook Connection failed.” Any ideas?

  30. those who get the zend_log fatal error it’s because you are running php 5.3.
    the solution is to change the definition of __get and __call methods from private to public in community/Inchoo/Facebook/Model/Client.php
    public function __get($var)
    public function __call($method,$args)

    Hope this helps.

  31. What’s the status of this module?
    I’m looking for a module that can simply do what this module is designed to do 😉

    But have tested it on the demo site, but it’s not working in Chrome 🙁

  32. i’m using magento version “1.9.0.0”,

    When I press “Connect with Facebook” on the top-links, I get: “Facebook Connection failed.” and the “Connect with Facebook”-button on the login-page doesn’t work at all

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <blockquote cite=""> <code> <del datetime=""> <em> <s> <strike> <strong>. You may use following syntax for source code: <pre><code>$current = "Inchoo";</code></pre>.

Tell us about your project

Drop us a line. We'd love to know more about your project.