SOCIALEE - SOCIAL MAGIC FOR EE

Need Facebook or OpenID registrations for ExpressionEngine?

Do your visitors want to share your content on Twitter, Facebook, LinkedIn and more?

Are your users tired of entering the same profile data every time they create a new account?

Socialee is the premier social networking and sharing add-on for ExpressionEngine, providing the seamless integration with Facebook, Twitter, Google, and Yahoo that your clients want right now.

  • Grow your member base by accepting registrations with Facebook, Twitter and more.
  • Fill out profiles automatically with Facebook Connect.
  • Socially publish comments, entries, or any page to users' status updates.

DESCRIPTION:

Socialee (formally RPXee) registers Facebook, Google, Yahoo, Twitter and other Social Media user accounts into ExpressionEngine. It is pronounced just like the adverb.

UPDATE: You’ve been asking for it for a while now, and we are proud to announce that Socialee version 1.2 is now compatible with ExpressionEngine version 2! This version is not compatible with ExpresionEngine 1.X; the previous version has been deprecated. If you need any help with downloading the previous version, please contact us.

With the release of version 1.0, Socialee busted out everything y’all have been asking for - social publishing and profile data auto-fill! Yeah, I know, it’s awesome.

Socialee is currently the only solution for ExpressionEngine site owners to open up their registration to all the supporters of Open ID supported by Janrain Engage. That means authentication via Facebook, Google, Yahoo, Flickr, AOL, Twitter, and a bunch more we can’t even begin to remember right now. Check out janrain.com for full details.

Janrain Engage itself offers three levels of service; we support the FREE one as well as the PLUS account type. Up to 6 OpenID auth options with the Free Janrain Engage accounts, and only a sign-in service is available. With the PLUS account type you can set up social publishing, profile data import and account mapping (so when the same person signs in with their Facebook account and then later their Gmail account, it’s all mapped to the same user account).

Socialee 1.2.x Requirements

  • PHP 5 with DOMXML and curl support enabled.
  • ExpressionEngine 2.1 or higher.
  • A (free) basic Janrain Engage account provides for OpenID registrations; you'll need a Janrain Engage Plus account to access the social widget and profile data features. http://www.janrain.com/products/engage/get-janrain-engage
  • Other APIs for logging in using Janrain Engage: Facebook Connect account: http://developers.facebook.com/setup.php Twitter: http://twitter.com/oauth_clients The APIs get a bit complicated, but are certainly the most arduous aspect of installation/setup. RPXnow.com provides instructions to create an app or oauth for each individual OpenID provider. Be sure to follow their instructions carefully.
  • Facebox JS - we include a copy, but please check it out here: http://famspam.com/facebox for more information. You should only have to include it in your doc headers to get it to work with Socialee however.

Socialee 1.2 Installation

  1. Download the latest version of Socialee.

  2. Login/Register at janrain.com/products/engage.

  3. Set up a new application for your Janrain Engage account. You will need to upgrade to a “Plus” account to get the social publishing and profile features.

  4. Create a new member group called ‘OpenID Members’ or something similar. Note the Group ID for this new group. (Note that this has far reaching consequences if you run a forum or use member groups for special features.)

  5. Upload the /socialee/ folder to the system/expressionengine/third_party/ folder.

  6. Upload the /socialee_themes/ folder to your /themes/third_party/ folder.

  7. If you are going to use Janrain Engage Plus features, upload the rpx_xdcomm.html file to the root of your site. Also, to import users’ photos as avatars, ensure the member group is able to upload avatars.

  8. Install Socialee in the Modules tab, and enable the Socialee extension.

  9. Update settings as required by the module. This should be fairly self explanatory, but leave the Facebox option set to Yes and ensure you have the right RPX account type selected.

  10. Create a new template. Something like members/openid_process. Into it goes:

    {exp:socialee:login return_url="{path=members/profile}"}

    NOTE: the above return_url parameter would take the user to some profile edit page if you have one. Feel free to change that.

  11. Go to your footer template and add this to the very bottom of it (around where your analytics scripts would normally go):

    {exp:socialee:init}

  12. To set up your basic login form use the following:

    {exp:socialee:signin return_url="{path=members/openid_process}" title="OpenID Login"}

    NOTE: the return_url parameter should point to the new template you created just previous.

  13. This step isn’t pretty, but it’s pretty necessary.

    For ExpressionEngine version 2.3 to 2.5: Open system/expressionengine/libraries/Auth.php and go to (about) line 434 (EE 2.3), line 444 (EE 2.4) or line 454 (EE 2.5) where it says:

    $hashed_pair = $this->hash_password($password, $m_salt, $h_byte_size);

    and add this code after it:

    /* -------------------------------------------
    /* 'member_member_password_override' hook.
    /*  - Override the password for login with a third party provider
    /*  - Added for Shotwell's Socialee 1.2
    */
         if($social_pw = $this->EE->extensions->call('member_member_password_override', $member->row('username'), $password)){
           $hashed_pair = array(
             'salt'  => '',
             'password' => $social_pw
           );    
         }
         if ($this->EE->extensions->end_script === TRUE) return;
    /*
    /* -------------------------------------------*/

    For ExpressionEngine version 2.14 and below: Open system/expressionengine/modules/member/mod.member_auth.php and go to (about) line 298 where it says:

    $password = do_hash($this->EE->input->post('password')); 

    and add this code after it:

    /* -------------------------------------------
    /* 'member_member_password_override' hook.
    /*  - Override the password for login with a third party provider
    /*  - Added for Shotwell's Socialee 1.2
    */
    $password = $this->EE->extensions->call('member_member_password_override',
     $this->EE->input->get_post('username'), $query->row('password'));
    if ($this->EE->extensions->end_script === TRUE) return;
    /* -------------------------------------------*/ 

  14. If you are using Janrain Engage Plus social publishing, you’ll need to activate Facebook, Twitter, MySpace and Yahoo apps at janrain.com/products/engage under Widgets > Social Widget

Socialee 1.2 Usage

{exp:socialee:signin}

Displays the classic login link that we’re really here for. Use this tag alongside your other member login or registration links.

Parameters

title

(optional) Text of the login link (defaults to "Sign-In using OpenID").

type

(optional) If you want to embed the login box instead of haing it in a modal window, add type="embed".

width

(optional) The width of the embedded box.

height

optional) The height of the embedded box.

return_url

(required) The address of the page that Janrain Engage will redirect to. This page must include the {exp:socialee:login} tag so that it can process the login.

Example:

{exp:socialee:signin title="OpenID Login" return_url="{path=site_index}{segment_1}/{segment_2}/{segment_3}"}



{exp:socialee:init}

To be included at the bottom of each page that uses the sign-in tag.

Example:

{exp:socialee:login return_url="{segment_3}/{segment_4}/{segment_5}"} 

This works to return users to their original page if you setup your signin tag like this:

{exp:socialee:signin return_url="{path=members/openid_process}{segment_1}/{segment_2}/{segment_3}"}



{exp:socialee:login}

Processes the login information received from Socialee.



{exp:socialee:finish}

To be included at the bottom of the login landing page (defined by the return_url attribute of the login tag).

Only used for Twitter/LinkedIn/MySpace support to request an email address from the user.



{exp:socialee:widget}

Used for sharing URLs on a site with the user’s social network through a status update. Allows users to log into Facebook, Twitter, MySpace and Yahoo to do so. We’ve included a share.png image (in the themes folder) and useful css that you include for your share button.

Parameters

activate_element_id

(optional) The id of the element that calls the social widget upon click. If omitted, it will display a default Socialee button.

entry_id

(required if activate_element_id is not set)

default_text

(optional) Words describing the action the user did (ex: "commented on"…, "posted"…). Defaults to "liked this"

title

(optional) The title for this activity. This information is displayed by Yahoo! and Facebook.

description

(optional) A description of this activity. This information is displayed by Facebook.

Example:

{exp:socialee:widget default_text="likes this" share_display="Share this with your people"  activate_element_id="share_button" url="{path=site_index}/{segment_1}/{segment_2}/{segment_3}"  description="sharing description"}



{exp:socialee:comment}

Used for sharing a user’s most recent comment with the user’s social network through a status update. Allows users to log into Facebook, Twitter, MySpace and Yahoo to do so, listening for a upon a successful comment post, then popping up the share widget pre-populated with their comment.

Parameters

share_display

(optional) The text describing the action performed by the box, defaults to "Share".

title

(optional) The title of the posted item.

description

(optional) The description of the posted item.

url

(required) The url of the content the user made an action on.

Example:

{exp:comment:form channel="news" preview="channel/preview"}
{if logged_out}
Name:
Email:
Location:
URL:
{/if}



{exp:socialee:logout}

Logs out a user and, importantly, deletes their social cookies. You may want to check to see if a user’s member group matches your OpenID member group and, if so, use this logout function instead of the usual EE logout.

Parameters

title

Text of the logout link (defaults to “Logout”).

path

(required) The path of the page you want to redirect to after logout.



Socialee 1.2 License

Each Socialee purchase entitles the purchaser to one (1) license which may be used on only one (1) live website and one (1) private development site. This includes both public-facing websites and intranet websites. Please contact us if you have any questions or to request an exception:
See the Shotwell Company license for software releases HERE.