A new extension, "Facebook toolkit" is now available for download. Comments and feedback can be left here but if you discover any issues, please post it on the issue tracker.


Working with symphony get's more fun by the day!

Neat Joe! I actually have the next part of this that connects it with Members extension in the works for a project atm so I'm keen to follow the development of this extension.

Awesome Brendan - let me know if you need anything in particular to assist with this.

Brendan, will you publish the code that integrates this with members extension ? Or at least can you give me some directions because I don't know php that well to make an extension myself.


Integrating this into the members extension is pretty interesting - and useful. Would be useful to know if this has been done already; and if so if this was at the expense of the usual workflow. IE registration only through Facebook or optional, using Facebook or the Members Extension.

If not would be interested to help out.

Integrating this into the members extension is pretty interesting

You think so? This would be a monster extension. But I agree that making it work with the Members extension would be quite interesting.

Pretty sure I've seen this done in Symphony projects. The members extension comes with a SymphonyMember class (member.symphony.php), so you need to implement a FacebookMember (member.facebook.php) and implement the methods with against Facebook's oAuth. I think. Brendan/Rowan will know more — I've worked on private projects where they have implemented this (Twitter and Facebook), but it was an earlier version of the Members extension. My guess is that it just needs someone to clean it up.

This would be a monster extension.

Well true; lets say not integrated directly into the members extension - but at least with the option to extend it.

I did implement something using a SymphonyMember class before for a private client to interact with their own API so pretty sure it would be possible. What I'm not sure is weather it would be possible to switch the SymphonyMember Class dynamically and enable use of say Facebook/Twitter/Members Extension all together...

I don't know if this helps at all, but this is how @alpacaaa and I were able to work out how to integrate a modified version of his OpenID extension (for use with Google Apps) with the Members extension: Members OpenID extension.

I suppose it could be extended to be a bridge for several types of authorization methods.

@banhouse, it looks that your extension is a good base for creating a Facebook Connect version. Do you know how to allow user registration, not only authentication?

I want to use only FB, with no passwords. Maybe its easier to create a section just for keep some profile info without use members. What are your opinions?

I can't say that I have much of an opinion about registration via Facebook authentication. It's an interesting thought, but I don't know how that might be implemented.

For our purposes, it was necessary to first register the email address being used by the user to authenticate with Google Apps. So, the email address of the Google Apps account is mapped to a member entry in Symphony. Of course, we purposely forbid self-registration.

As long as there was some unique identifier that you could relate with the member entry, it should work. I assume that would be the Facebook ID mentioned in the Facebook Toolkit. So, the challenge would be to build a couple chained events that could register a user on successful authentication.

It is certainly possible to use this without the Members extension. On Symphony Extensions I am using the Github oAuth extension but with a customisation such that on successful authentication I fire off a CURL request to a URL which has an event attached that creates a new user entry in Symphony. I use the Github username field as the unique identifier, stored as a Unique Input Field, so on subsequent logins it does not create duplicate entries.

Exactly the same principle can be extended for use with Facebook, Twitter or any other oAuth sign in, for when you don't need the features that the Members extension provides.

Thankyou two for the responses. And @nickdun, congratulations for the Symphony Extensions site. It's very cool!

I've updated this extension to work with Symphony 2.3, and made a few other tweaks. Pull request sent.

@henry: did you fix the performance problem? One of the downsides of the current implementation is that it will resent a request to Facebook to see if the use is still authenticated on each page the Facebook event is attached. In my opinion there should be some session caching where the extension accepts the user to be authenticated for a grace period after the initial authentication.

No I didn't, I haven't used it on large enough sites where this would become a problem. I've only been using it for Facebook apps.

Looks like it should be easy enough to add in with the inbuilt Symphony caching.

I actually wouldn't mind doing this to get around the issue where the like status is not retained over subsequent page loads when a Facebook app tab is used. Not sure when I would be able to get to this though sorry.

Hey guys, sorry if this is a pretty obvious answer, but I can't seem to wrap my head around it at the moment.

Once a user has logged in with Facebook, how do you go about tying entries to that user? This stores the values as an Event, so SBL field is obviously not the answer. Do you take the event values and store them as a Section entry somewhere? Do you just enter one of the event values as a text field when creating an entry and that suffices? Something different?

Hi guys. I'm trying to implement this extension. I've followed the instructions on setting everything up, but I am having a little trouble.

  1. No birthday or email address show up in the event. They show up empty (<birthday /> and <email />).
  2. How do I go about storing users in a section? I'm guessing once the page is reloaded, the Facebook event should be posted to a save entry event. Should I post it through Javascript, or is it better done server-side?

Edit: Problem 1 was solved by adding perms="email,user_birthday" to the login button.

Create an account or sign in to comment.

Symphony • Open Source XSLT CMS

Server Requirements

  • PHP 5.3-5.6 or 7.0-7.3
  • PHP's LibXML module, with the XSLT extension enabled (--with-xsl)
  • MySQL 5.5 or above
  • An Apache or Litespeed webserver
  • Apache's mod_rewrite module or equivalent

Compatible Hosts

Sign in

Login details