From Organic Design
Revision as of 08:39, 6 October 2011 by Nad (talk | contribs)

I'm doing a job that requires a MediaWiki to post recentchanges to user's facebook wall, and to be embedded in the Facebook canvas.

Logging in to the wiki with Facebook account

In installed the facebook extension so that users can use their Facebook account to login to the wiki. This requires some database tables to be set up first by running the update.php maintenance script.

  • The Facebook SQL filenames needed to be prepending with the database table prefix before running the maintenance script.
  • I had to make all the permissions on the wiki open so that the extension could create an account.
  • See info about the extension configuration here.
  • Sometimes during testing and deleting apps and users etc, a user becomes corrupted and can't login properly anymore. To fix this, delete everything in the Facebook database table with delete * from wiki_user_fbconnect;

Posting wiki changes to the users wall

I started with wall posts with the facebook PHP SDK, which I got working ok, except for one difference which is that the siteURL is now set from the "website" section of "Select how your app integrates with Facebook" in the "edit App" screen.

Here's the post that my test script did:


I got that working with the following settings:


But there seems to be something wrong with the preferences and I had to comment out a condition in FacebookPushEvent.php on line 169:

   if( !$wgUser->getOption( self::$PREF_TO_DISABLE_ALL ) ) {

// if( $wgUser->getOption( $prefName ) ) {


// }



Further investigation shows that the problem is due to the up_properties field of the user_properties table is of type varbinary(32) so is truncated to 32 characters.

Embedding the wiki in the Facebook Canvas

I've got the wiki to embed in the canvas using the Facebook application settings shown below, but for some reason many of the links such as RecentChanges or editing a page return a blank screen while others work ok. Since October 1st the embedded application must be an HTTPS connection, but a self-signed certificate is accepted so this is not a big problem.



Logging in with Facebook groups