<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	
	xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Dented Reality &#187; facebook</title>
	<atom:link href="http://dentedreality.com.au/tags/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://dentedreality.com.au</link>
	<description>Beau Lebens throws down his opinion on all sorts of things he doesn&#039;t know too much about.</description>
	<lastBuildDate>Tue, 07 Feb 2012 20:48:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.4-alpha-19719</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Federated Social Web Summit</title>
		<link>http://dentedreality.com.au/2010/07/federated-social-web-summit/</link>
		<comments>http://dentedreality.com.au/2010/07/federated-social-web-summit/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 20:32:17 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[activity streams]]></category>
		<category><![CDATA[diaspora]]></category>
		<category><![CDATA[diso]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[federated]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[fsws]]></category>
		<category><![CDATA[fsws2010]]></category>
		<category><![CDATA[gravatar]]></category>
		<category><![CDATA[mozilla]]></category>
		<category><![CDATA[ostatus]]></category>
		<category><![CDATA[social]]></category>
		<category><![CDATA[status.net]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=5365</guid>
		<description><![CDATA[I&#8217;m in Portland today and taking part in the Federated Social Web Summit, before attending OSCON for the next week. Today is so far packed with lighting presentations from all sorts of companies, projects and protocols in the space to bring us all up to speed. After lunch we&#8217;re going to all be discussing and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m in Portland today and taking part in the <a href="http://federatedsocialweb.net/wiki/Main_Page">Federated Social Web Summit</a>, before attending <a href="http://www.oscon.com/oscon2010">OSCON</a> for the next week. Today is so far packed with lighting presentations from all sorts of companies, projects and protocols in the space to bring us all up to speed. After lunch we&#8217;re going to all be discussing and looking at how we can put together all the building blocks and bring to life this concept of a federated social web. Here are my (long) notes on all the projects etc from the morning:</p>
<p>Apologies to any names I&#8217;ve misspelled, product names I&#8217;ve left out, etc.</p>
<p><span id="more-5365"></span></p>
<div class="collapse">
<ol>
<li>@evanpro
<ol>
<li>Connecting people across different networks</li>
<li>Network of networks</li>
<li>Current model
<ol>
<li>Get money</li>
<li>Build network</li>
<li>Make everyone in the world use it</li>
<li>Win!</li>
</ol>
</li>
</ol>
</li>
<li>Status.net
<ol>
<li>Indexed BLOB for search?</li>
<li>Linear timeline is main UI</li>
<li>Most important 2 &#8220;objects&#8221;
<ol>
<li>User/Profile</li>
<li>Status</li>
</ol>
</li>
<li>Syndicates &#8220;remote&#8221; users into your local net</li>
</ol>
</li>
<li>Martin Atkins
<ol>
<li>TypePad</li>
<li>ActivityStreams</li>
<li>Atom -> JSON</li>
</ol>
</li>
<li>Marcus: @versionvega
<ol>
<li>Peer-to-Peer
<ol>
<li>Decentralized vs Distributed
<ol>
<li>Server to server</li>
<li>100% Node to node</li>
</ol>
</li>
</ol>
</li>
<li>Based on &#8220;FreePastry&#8221;</li>
<li>Generic &#8220;node&#8221; service (Distributed Hash Table)
<ol>
<li>Routing</li>
<li>Messaging (unicast, multicast, anycast)</li>
<li>Data Storage (key/value, semantic)</li>
</ol>
</li>
<li>Avoid conflict by learning more about each other</li>
<li>Don&#8217;t focus on re-implementing things we already have
<ol>
<li>IM</li>
<li>Blogging</li>
<li>etc</li>
</ol>
</li>
</ol>
</li>
<li>BuddyCloud
<ol>
<li>Open source project</li>
<li>Europe: Munich/Paris</li>
<li>Social location: people and places</li>
<li>Everything is a Channel (forum topic) which gets posted into</li>
<li>Privileges system within Channels (ChanOps)</li>
<li>XMPP-based</li>
<li>&#8220;Almost&#8221; OStatus compatible</li>
</ol>
</li>
<li>Personal Data Store (PDS) Project
<ol>
<li>Explicit and implicit
<ol>
<li>IM</li>
<li>Email</li>
<li>Status messages</li>
<li>Mobile tracking</li>
</ol>
</li>
<li>Personal Data Exchange (PDX)</li>
<li>XDI
<ol>
<li>Data model</li>
<li>Protocol for communication</li>
<li>Access control</li>
</ol>
</li>
</ol>
</li>
<li>Open Action Network
<ol>
<li>Non-profit space</li>
<li>Groups moving actions between federated networks</li>
</ol>
</li>
<li>Open Social Platform (OSP)
<ol>
<li>Privacy first</li>
<li>Payment gateway for personal experience(?)</li>
</ol>
</li>
<li>Sebasitan: viz.net
<ol>
<li>German privacy rules require full deletion of data</li>
<li>Big infrastructure</li>
<li>Header-based triggers etc written as an nginx module</li>
<li>Identity being separated from activity</li>
<li>Specialized services replacing the monolithic network</li>
</ol>
</li>
<li>Geoloqi
<ol>
<li>Pre-entered text (TripIt/Dopplr)</li>
<li>Explicit &#8220;Check-ins&#8221;</li>
<li>Passive/tracking</li>
<li>Temporal connections</li>
<li>What is Geoloqi?
<ol>
<li>Mobile apps for tracking location</li>
<li>Server for recording</li>
<li>APIs for accessing</li>
<li>Triggers for delivery of data via callback URLs (geo-gates)</li>
</ol>
</li>
</ol>
</li>
<li>Appleseed
<ol>
<li>Working PoC of federated, node-based networks</li>
<li>It is Diaspora?</li>
<li>Sender-stores messaging system</li>
<li>Targeted at $8pm hosts</li>
<li>Joomla to Content, Appleseed to Social</li>
<li>Protocol agnostic</li>
<li>Pull, don&#8217;t push</li>
</ol>
</li>
<li>WikiMedia
<ol>
<li>Identity on Mailing Lists (?)</li>
<li>The data is there, it&#8217;s just not aggregated</li>
</ol>
</li>
<li>Chris Messina
<ol>
<li>Activity Streams</li>
<li>Based on atom feeds, but also available in JSON</li>
</ol>
</li>
<li>Cliqset
<ol>
<li>Protocol-happy
<ol>
<li>ActivityStreams</li>
<li>Webfinger</li>
<li>PuSH</li>
<li>Salmon</li>
<li>Remote Follow</li>
</ol>
</li>
</ol>
</li>
<li>Joseph Smarr
<ol>
<li>Bridge the island
<ol>
<li>Keep using disparate systems, but connect them back to each other</li>
</ol>
</li>
<li>Topology of this system?</li>
<li>Salmon as a key component to link everything together</li>
</ol>
</li>
<li>Paul: Mozilla (Drumbeat)
<ol>
<li>Get people to help out making the web more open</li>
<li>Cool things (discovery) can be creepy for users</li>
<li>Activities forming the core of the site
<ol>
<li>Events</li>
<li>Groups</li>
</ol>
</li>
</ol>
</li>
<li>Dan Mills (Mozilla)
<ol>
<li>Account Manager
<ol>
<li>Signed in/out?</li>
<li>Who you are, etc</li>
<li>Firefox 4</li>
<li>.host-meta and/or Headers</li>
</ol>
</li>
<li>Contacts
<ol>
<li>Person as a first-class object in the browser</li>
<li>Sharing data from my connections (browser acting as &#8220;me&#8221;)</li>
<li>APIs for websites to access my Contact data</li>
</ol>
</li>
</ol>
</li>
<li>Diaspora
<ol>
<li>OStatus</li>
<li>GPG signed data between seeds</li>
<li>PuSH for private messaging</li>
<li>Currently using a custom messaging system, will go to Salmon</li>
<li>Using websockets</li>
<li>Very academic</li>
<li>Building the network around the single person
<ol>
<li>It&#8217;s an experiment</li>
</ol>
</li>
</ol>
</li>
<li>OpenMicroBlogging.org (OpenMicroBlogger)
<ol>
<li>Federation via RSS</li>
<li>XRDS+OAuth</li>
<li>WordPress plugin using OpenMicroBlogger
<ol>
<li>&#8220;Like&#8221; with syndication</li>
</ol>
</li>
</ol>
</li>
<li>PuSH (Google)
<ol>
<li>Privacy: Plausible deniability</li>
<li>Firehose</li>
<li>Filtering</li>
<li>Check out their wiki for more info</li>
</ol>
</li>
<li>Tantek Celik
<ol>
<li>Itches &#038; Scratches: build something that scratches an itch and you might get something out of it</li>
<li>XFN</li>
<li>Social Graph API</li>
<li>hCard: post personal profile</li>
<li>Sharecropping (profiles + data being shut down/disappearing)
<ol>
<li>Post stuff to my own site so that I control it</li>
<li>Falcon (server-based Twitter client)</li>
<li>URL shorteners disappearing/creating problems within the web</li>
</ol>
</li>
<li>CASSIS.js (write JS and PHP that works in each) [kassees]</li>
<li>rel-me-auth over OpenID</li>
</ol>
</li>
<li>sudoSocial (Mozilla)
<ol>
<li>Controlling your stream</li>
<li>Stream editing + publishing environment</li>
<li>Bring young people into tech (simple access to customizing aggregated data)</li>
</ol>
</li>
<li><span class='highlight'>missed one; sioc?</span></li>
<li>Janrain
<ol>
<li>OpenID</li>
<li>my.openid (?)</li>
<li>Abstract authentication and normalize profile data from different services into PoCo, available via API</li>
<li>Logins by Provider (breakdown chart)</li>
<li>Janrain Federate (become an OpenID provider via Janrain?)</li>
</ol>
</li>
<li>Steve Ivy (DiSo)
<ol>
<li>Enable people to use WordPress as a node in the social graph</li>
<li>No longer a technical project, now more of an advocacy project</li>
<li>Most options are provider/silo-focussed</li>
</ol>
</li>
<li>Rob Dolin (Windows Live Spaces/Activity Streams)
<ol>
<li>All sorts of AS support on Windows Live</li>
<li>Self on-boarding to pull in &#8220;unsupported&#8221; services via feeds etc
<ol>
<li>Ability to publish into Windows Live</li>
</ol>
</li>
</ol>
</li>
<li>OStatus
<ol>
<li>Protocol
<ol>
<li>Followers</li>
<li>Replies/Mentions</li>
<li>Favo(u)rites</li>
<li>Groups</li>
</ol>
</li>
<li>The Stack
<ol>
<li>Webfinger: identity/addressing</li>
<li>Portable Contacts: profile/user data</li>
<li>ActivityStreams: action representation</li>
<li>PubSubHubbub: realtime delivery</li>
<li>Salmon: mentions, replies, activity</li>
</ol>
</li>
<li>Assumptions
<ol>
<li>HTTP-based (XMPP?)</li>
<li>Atom-based (JSON? RDF?)</li>
</ol>
</li>
</ol>
</li>
<li>Dan Applequist, Vodafone (OneSocialWeb)
<ol>
<li>Free, open, decentralized social network</li>
<li>XMPP + ActivityStreams + vCard + XFN</li>
<li>Access control on top of AS</li>
<li>Interested in OStatus, Webfinger, XMPP v HTTP</li>
</ol>
</li>
<li><span class='highlight'>social web something</span>
<ol>
<li>Status.net + plugins to create a more Facebook-y experience</li>
</ol>
</li>
<li>Blaine Cook (Webfinger)
<ol>
<li>How do you quickly, easily exchange (unique) identity</li>
<li>Essential
<ol>
<li>Decentralized</li>
<li>Usable</li>
<li>Globally Unique</li>
<li>Globally Routable</li>
<li>Free</li>
</ol>
</li>
<li>The web is about documents
<ol>
<li>I am not a document</li>
</ol>
</li>
<li>Layer webfinger on HTTP with a From: header to verify who is making a request</li>
</ol>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2010/07/federated-social-web-summit/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Web Service Authentication APIs</title>
		<link>http://dentedreality.com.au/2010/01/web-service-authentication-apis/</link>
		<comments>http://dentedreality.com.au/2010/01/web-service-authentication-apis/#comments</comments>
		<pubDate>Sun, 24 Jan 2010 01:34:55 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Featured]]></category>
		<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[authentication]]></category>
		<category><![CDATA[authsub]]></category>
		<category><![CDATA[bebo]]></category>
		<category><![CDATA[blogger]]></category>
		<category><![CDATA[delicious]]></category>
		<category><![CDATA[digg]]></category>
		<category><![CDATA[documentation]]></category>
		<category><![CDATA[dopplr]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[last.fm]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[mixx]]></category>
		<category><![CDATA[myspace]]></category>
		<category><![CDATA[oauth]]></category>
		<category><![CDATA[openid]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[posterous]]></category>
		<category><![CDATA[reddit]]></category>
		<category><![CDATA[tumblr]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[verification]]></category>
		<category><![CDATA[vimeo]]></category>
		<category><![CDATA[web services]]></category>
		<category><![CDATA[yahoo]]></category>
		<category><![CDATA[youtube]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=4670</guid>
		<description><![CDATA[For a project I&#8217;m working on, I&#8217;ve been looking at a lot of web service authentication/verification APIs lately. I thought folks might be interested in the results. Here are the methods available for a variety of web services/applications online, with links to their appropriate docs: Web Application Authentication Method Bebo Custom token Blogger.com AuthSub Delicious [...]]]></description>
			<content:encoded><![CDATA[<p>For a project I&#8217;m working on, I&#8217;ve been looking at a lot of web service authentication/verification APIs lately. I thought folks might be interested in the results. Here are the methods available for a variety of web services/applications online, with links to their appropriate docs:</p>
<p><span id="more-4670"></span></p>
<table class="aligncenter" style="border: 0pt solid #cccccc;" border="0">
<thead>
<tr>
<th>Web Application</th>
<th>Authentication Method</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="http://bebo.com">Bebo</a></td>
<td><a href="http://www.bebo.com/docs/auth">Custom token</a></td>
</tr>
<tr>
<td><a href="http://blogger.com">Blogger.com</a></td>
<td><a href="http://code.google.com/apis/blogger/docs/2.0/developers_guide_protocol.html#Authenticating">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://delicious.com">Delicious</a></td>
<td><a href="http://delicious.com/help/api">OAuth (and HTTP Basic)</a></td>
</tr>
<tr>
<td><a href="http://digg.com">Digg</a></td>
<td><a href="http://digg.com/api/docs/authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://dopplr.com">Dopplr</a></td>
<td><a href="http://dopplr.pbworks.com/">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://facebook.com">Facebook</a></td>
<td><a href="http://developers.facebook.com/connect.php">Custom token (Facebook Connect)</a></td>
</tr>
<tr>
<td><a href="http://flickr.com">Flickr</a></td>
<td><a href="http://www.flickr.com/services/api/auth.spec.html">Custom token</a></td>
</tr>
<tr>
<td><a href="http://friendfeed.com">FriendFeed</a></td>
<td><a href="http://friendfeed.com/api/documentation#authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://www.google.com/profiles">Google Profiles</a></td>
<td><a href="http://code.google.com/apis/apps/profiles/developers_guide_protocol.html#Auth">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://last.fm">Last.fm</a></td>
<td><a href="http://www.last.fm/api/webauth">Custom token</a></td>
</tr>
<tr>
<td><a href="http://linkedin.com">LinkedIn</a></td>
<td><a href="http://developer.linkedin.com/docs/DOC-1008">OAuth</a></td>
</tr>
<tr>
<td><a href="http://mixx.com">Mixx</a></td>
<td><a href="http://help.mixx.com/API:v1r1:user_auth">OAuth</a></td>
</tr>
<tr>
<td><a href="http://myspace.com">MySpace</a></td>
<td><a href="http://wiki.developer.myspace.com/index.php?title=What_is_MySpaceID%3F#MySpace_Application_Authorization_and_OAuth">OAuth</a></td>
</tr>
<tr>
<td><a href="http://picasa.com">Picasa</a></td>
<td><a href="http://code.google.com/apis/picasaweb/docs/1.0/developers_guide_php.html#AuthSub">AuthSub</a></td>
</tr>
<tr>
<td><a href="http://posterous.com">Posterous</a></td>
<td><a href="http://posterous.com/api/posting">HTTP Basic</a></td>
</tr>
<tr>
<td><a href="http://reddit.com">Reddit</a></td>
<td><a href="http://code.reddit.com/wiki/API">Custom token</a> (modhash)</td>
</tr>
<tr>
<td><a href="http://tumblr.com">Tumblr</a></td>
<td><a href="http://www.tumblr.com/docs/api#authenticate">HTTP POST</a> (plaintext password)</td>
</tr>
<tr>
<td><a href="http://twitter.com">Twitter</a></td>
<td><a href="http://apiwiki.twitter.com/Twitter-REST-API-Method%3A-oauth-authorize">OAuth</a></td>
</tr>
<tr>
<td><a href="http://vimeo.com">Vimeo</a></td>
<td><a href="http://www.vimeo.com/api/docs/authentication">OAuth</a></td>
</tr>
<tr>
<td><a href="http://yahoo.com">Yahoo</a></td>
<td><a href="http://developer.yahoo.com/oauth/">OAuth</a></td>
</tr>
<tr>
<td><a href="http://youtube.com">YouTube</a></td>
<td><a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_authsub.html">AuthSub</a> and <a href="http://code.google.com/apis/youtube/2.0/developers_guide_protocol_oauth.html">OAuth</a></td>
</tr>
</tbody>
</table>
<p>Interesting stats:</p>
<ul>
<li>21 web services analyzed</li>
<li>10 (48%) are using <a href="http://oauth.net">OAuth</a> (including YouTube)</li>
<li>5 (24%) are using <a href="http://code.google.com/apis/accounts/docs/AuthSub.html">AuthSub</a> (also including YouTube)</li>
<li>Dopplr is the only non-Google property using AuthSub</li>
<li>Tumblr is the only property using plaintext passwords, although Posterous is using HTTP Basic, which is basically plaintext</li>
</ul>
<p>Looks like OAuth is gaining some real traction, and in fact if Google switched over to using it, it&#8217;d have a real hold on the authentication space. That would probably be a good thing. Next up in my adventure will be seeing how truly conformant/compatible all these OAuth implementations are, and how portable my code be able to be in accessing them all.</p>
<p>If you&#8217;d like to add any others that you know about, please throw them in the comments and I&#8217;ll add them to the table above so everyone can find them.</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2010/01/web-service-authentication-apis/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
	
	</item>
		<item>
		<title>On Social Customer Support</title>
		<link>http://dentedreality.com.au/2009/04/on-social-customer-support/</link>
		<comments>http://dentedreality.com.au/2009/04/on-social-customer-support/#comments</comments>
		<pubDate>Sat, 18 Apr 2009 18:07:26 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Clients]]></category>
		<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[automattic]]></category>
		<category><![CDATA[customer service]]></category>
		<category><![CDATA[customer support]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[get satisfaction]]></category>
		<category><![CDATA[intensedebate]]></category>
		<category><![CDATA[social media]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=1023</guid>
		<description><![CDATA[Through my work with Automattic, I&#8217;ve had the privilege of working with the guys over at Intense Debate. I&#8217;ve been helping them improve their WordPress plugin and get it ready for some new features. Along the way I made the blunder of releasing a version that had a pretty serious bug in it, and that [...]]]></description>
			<content:encoded><![CDATA[<p>Through my work with <a href="http://automattic.com/">Automattic</a>, I&#8217;ve had the privilege of working with the guys over at <a href="http://intensedebate.com/">Intense Debate</a>. I&#8217;ve been helping them improve their <a href="http://wordpress.org/extend/plugins/intensedebate">WordPress plugin</a> and get it ready for some new features. Along the way I made the blunder of releasing a version that had a pretty serious <a href="http://twitter.com/beaulebens/status/1531557495">bug</a> in it, and that triggered a lot of customer support issues/cases.</p>
<p>In the &#8220;old days&#8221; (or in a lot of big corporates today), those support cases would have been handled behind a corporate &#8220;veil of secrecy&#8221;, tucked in a back end system somewhere, responded to by anonymous &#8220;Customer Service Representatives&#8221; via a generic email account like &#8220;support@intensedebate.com&#8221;. While we&#8217;re also making use of a generic email address, the similarities between our approach and that of big corporates ends there. End to end, the differences are pretty stark.</p>
<p><span id="more-1023"></span></p>
<h3>Plugin Release</h3>
<p>Previously, companies may have tried to encode their plugins, or released them as some sort of binary so that they could control access to them and avoid people modifying them. When we released the 2.1 version of our plugin, we &#8220;checked it in&#8221; to a public-readable Subversion repository which then publishes to the WordPress Plugin Directory. That code (and all other code in the Plugin Directory) is GPL licensed and available for re-use/hacking/modification. People are welcome to read the code and see what we&#8217;re doing, point out where we could do things better, and ideally improve upon it themselves.</p>
<p>After we&#8217;ve uploaded the code, people will start getting notifications in their WordPress admin panel that there&#8217;s a new version available. To help explain what&#8217;s going on, we published a <a href="http://blog.intensedebate.com/2009/04/13/wordpress-plugin-v21/">blog post announcing the new version</a>, the new features etc.</p>
<h3>Comment Support</h3>
<p>Not that it&#8217;s a recommended channel for receiving support, but this is where we start really differing. People have posted a number of issues and questions about the plugin right there on the announcement post. We could moderate and remove those comments (or not allow them in the first place); instead, we work with our customers and try to address their problems right there an then. Michael and I have been bouncing around on that post answering questions and finding out more information from people so that we could fix some problems and get to 2.1.1. With email notifications coming in every time someone commented on that post, we&#8217;re able to quickly respond to people and help work out any issues they&#8217;re having.</p>
<h3>Seeking Satisfaction</h3>
<p>If people aren&#8217;t commenting on that post directly, they&#8217;re often over at the <a href="http://getsatisfaction.com/intensedebate/">Intense Debate Get Satisfaction</a> forum, a community-powered support system where a number of people are contributing. Again, this is a very public way of supporting users, and puts us out there in the limelight, warts n&#8217; all. We answer what we can, assure people that we&#8217;re still working on things and that we&#8217;re making progress (which we are, a lot of it) and that we&#8217;ll get back to them as soon as there&#8217;s something to report. When there are updates, or when we need more information for troubleshooting, we post another message and get a stack of responses from eager users, hoping to have their problems solved. This is very real and very connected, and I truly believe that being open and transparent about problems that people are having and the way that we&#8217;re working with them helps not just that user, but others who may have similar problems.</p>
<h3>Late-night Tweeting</h3>
<p>For real-time feedback and almost-instant-messaging-immediacy, there&#8217;s <a href="http://twitter.com/">Twitter</a>. I know, with <a href="http://news.cnet.com/8301-17939_109-10222030-2.html">Oprah getting in on it</a> now Twitter will probably implode soon, but in the meantime, I&#8217;ve found myself providing support direct to people via Twitter as well. One user wanted to use IntenseDebate, but found the <a href="http://twitter.com/rodhilton/statuses/1530115904">comment importer wasn&#8217;t working</a>. I replied that we were <a href="http://twitter.com/beaulebens/statuses/1531187765">about to release a fix</a>, and that user was then able to get <a href="http://twitter.com/rodhilton/statuses/1531552697">up and running</a>. This all happened, asynchronously, within about 4 hours of his first tweet.</p>
<h3>In Your Facebook</h3>
<p>Then for one that I really wasn&#8217;t expecting, someone contacted me through <a href="http://facebook.com/">Facebook</a> to try to sort out a problem. A user spotted me providing support via Get Satisfaction and other methods, and tracked me down on Facebook. In this case, it was someone that we were already working on a fix for, but it demonstrates just another way that people have been able to get in touch with us.</p>
<h3>Better for Customers, Better for Us?</h3>
<p>I guess the big question (or 2 questions really) this all poses is: Is this new way of providing support better for our customers? Is it better for us (as the company providing support)? Could it be better for everyone still?</p>
<p>The biggest problem I have (as someone providing support) is just trying to keep track of all these different &#8220;vectors&#8221;. I&#8217;ve identified 4 different support vectors above, and that&#8217;s not even including our <a href="http://intensedebate.com/contactus">normal support email/form</a>, <a href="http://www.facebook.com/group.php?gid=18092405897">official Facebook group</a> or VIP support channels. That makes at least 7 different vectors through which we might be providing support. It can get messy trying to keep up to date with them all and ensuring that you&#8217;ve replied to people where they&#8217;ve contacted you and in a timely fashion. Perhaps there&#8217;s an argument for traditional, centralized systems after all <img src='http://dentedreality.com.au/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2009/04/on-social-customer-support/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
	</item>
		<item>
		<title>Twitter vs Facebook Status</title>
		<link>http://dentedreality.com.au/2009/04/twitter-vs-facebook-status/</link>
		<comments>http://dentedreality.com.au/2009/04/twitter-vs-facebook-status/#comments</comments>
		<pubDate>Thu, 09 Apr 2009 23:14:56 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[status]]></category>
		<category><![CDATA[twitter]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=1016</guid>
		<description><![CDATA[In the past few weeks I&#8217;ve been asked by at least 3 different people why they should use this new &#8220;Twitter&#8221; thing they&#8217;ve heard about, rather than just updating their status on Facebook. I think it&#8217;s a pretty valid question, so I thought I&#8217;d put together some of the reasons why I use Twitter, rather [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few weeks I&#8217;ve been asked by at least 3 different people why they should use this new &#8220;<a href="http://twitter.com/">Twitter</a>&#8221; thing they&#8217;ve heard about, rather than just updating their status on <a href="http://facebook.com/">Facebook</a>. I think it&#8217;s a pretty valid question, so I thought I&#8217;d put together some of the reasons why I use Twitter, rather than Facebook&#8217;s Status update.</p>
<ol>
<li><strong>It&#8217;s Open</strong>: I&#8217;m a fan of the idea of &#8220;open&#8221; (as in <a href="http://opensource.org">open source</a>, portable data, etc etc). Facebook is not. Twitter is. Putting my status updates through Twitter means that I can do fun things like load them into my sidebar (on the right of my blog) easily (via an RSS feed). If I updated in Facebook, those updates become useless because I can&#8217;t get them back out.</li>
<li><strong>Client Apps</strong>: I don&#8217;t want to have to go to the Facebook site all the time to update my status. I can run a Twitter client (currently <a href="https://destroytwitter.com/">DestroyTwitter</a> or <a href="http://www.tweetdeck.com/beta/">TweetDeck</a>) on my computer and update my status in a couple of key-presses. I also have options (there&#8217;s that &#8220;open&#8221; thing coming in handy again) as far as clients go, so I can pick and choose something that I like.</li>
<li><strong>Be Part of Something Bigger</strong>: Facebook is great and all, but it&#8217;s owned and controlled by Facebook. It&#8217;s a world unto itself with an established set of protocols and expectations. Twitter is something new. It&#8217;s a new type of &#8220;web&#8221; as we know it. It&#8217;s &#8220;live&#8221; in a way that not much else is yet. I&#8217;d like to be a part of that, so that I can see what&#8217;s really going on, which brings me to&#8230;</li>
<li><strong>Search</strong>: <a href="http://search.twitter.com/">Twitter&#8217;s search system</a> is a whole new ball-game. It allows you to see what&#8217;s going on and what people are thinking/doing/asking <strong>now</strong>.</li>
<li><strong>Community</strong>: Twitter&#8217;s omni-directional &#8220;follow&#8221; system means that the community/network is fundamentally to Facebook&#8217;s bi-directional system. I don&#8217;t &#8220;allow&#8221; people to follow me. If they want to, they do. If they don&#8217;t, they don&#8217;t. I can reach a whole different group of people on Twitter that I am not connected to on Facebook.</li>
<li><strong>Laziness</strong>: Last but not least, I have a Facebook app installed that loads my Twitter status into FB anyway, saving me the hassle of updating both <img src='http://dentedreality.com.au/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>So why do you use Twitter (or Facebook Status)? Chime in on the comments and I&#8217;ll add any good ones to the list!</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2009/04/twitter-vs-facebook-status/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
	</item>
		<item>
		<title>Idea: Comment Aggregation via WordPress</title>
		<link>http://dentedreality.com.au/2009/03/idea-comment-aggregation-via-wordpress/</link>
		<comments>http://dentedreality.com.au/2009/03/idea-comment-aggregation-via-wordpress/#comments</comments>
		<pubDate>Fri, 13 Mar 2009 01:03:47 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[aggregation]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[friendfeed]]></category>
		<category><![CDATA[google reader]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=919</guid>
		<description><![CDATA[There are lots of &#8220;conversation platforms&#8221; out there, and more arriving daily. FriendFeed, Twitter, Facebook, Google Reader (now that it has commenting functionality); you name it. These systems are all great for getting your content out there and exposing more people to it, but the problem (in my opinion) is that it becomes really hard [...]]]></description>
			<content:encoded><![CDATA[<p>There are lots of &#8220;conversation platforms&#8221; out there, and more arriving daily. <a href="http://friendfeed.com/">FriendFeed</a>, <a href="http://twitter.com/">Twitter</a>, <a href="http://facebook.com/">Facebook</a>, <a href="http://google.com/reader/">Google Reader</a> (now that it has <a href="http://googleblog.blogspot.com/2009/03/google-reader-starts-conversation.html">commenting functionality</a>); you name it. These systems are all great for getting your content out there and exposing more people to it, but the problem (in my opinion) is that it becomes really hard to follow the conversations on all of these different platforms. They all generally act as either a kind of content aggregation platform (e.g. FriendFeed/Google Reader), or as a unique content creation/delivery system, which is heavily used to redistribute existing content (e.g. Twitter). With all this aggregating going on, why not do the same thing in reverse? <a href="http://mashable.com/">Mashable</a> has just started doing <a href="http://mashable.com/2009/03/04/social-media-comments/">something along these lines</a> and that prompted me to finally publish this draft post.</p>
<p><span id="more-919"></span>This blog (and literally millions of others) are powered by <a href="http://wordpress.org/">WordPress</a>. I write my content here and then potentially tweet about it, my feed gets published to FriendFeed, etc. I consider my blog the &#8220;central hub&#8221; of my online content production. My content gets distributed out into the wider web and ends up all over the place. Conversations occur at many of those locations, so why not aggregate those conversations back to my blog? As far as I&#8217;m concerned my blog is and should be the canonical version of my content. This system could leverage the various APIs and feeds provided by other systems, pulling back conversation related to one of my posts and storing it locally using WordPress&#8217;s comment system. Upon presentation on my blog, I would then include an icon or text message against each comment declaring where it happened (&#8220;on Twitter&#8221;, &#8220;via FriendFeed&#8221;, etc).</p>
<p>Off the top of my head, I&#8217;d suggest that part of this system would require you to automatically generate a shortened version of the permalink for your post on as many of the <a href="http://tinyurl.com/">TinyURL</a> type services as possible, then store those URLs against each post. These become your keys for identifying comments/conversations relating to that post. Now you go out to each service (where you don&#8217;t already have some sort of programmatic relationship that&#8217;s more reliable/simple) and locate all conversations mentioning any of your URLs. Those conversations would then be aggregated back to your blog, and published on that specific post as a comment. With some voodoo, you could even theoretically maintain threading if it was supported on the other systems. This part might require the addition of a wp_commentmeta table though (which has been discussed repeatedly in the WordPress developer community).</p>
<p>I took a quick look around at some of the more popular &#8220;conversation-generating&#8221; services/platforms to see how possible this would be. This means I&#8217;m looking for an API or a feed of some sort which can be access and parsed to locate relevant conversations. Here&#8217;s what I came up with:</p>
<ul>
<li><strong>Twitter</strong>: Search API should allow you to easily locate all tweets containing a URL. You could also quite easily add the ability to reply to a user on your blog and simultaneously post your reply as an @reply on Twitter (the first 140 characters anyway). <a href="http://danzarrella.com/beyond-tweetbacks-introducing-tweetsuite.html">TweetSuite</a> adds some of this functionality to WordPress already.</li>
<li><strong>Facebook</strong>: Walled Garden! Their APIs do not currently allow you to pull comments back from their system. There has been a lot of talk about Facebook opening up more though, so hopefully this will change soon.</li>
<li><strong>FriendFeed</strong>: Their API is extensive, and seems to allow everything needed. There&#8217;s even a <a href="http://wordpress.org/extend/plugins/friendfeed-comments/">WordPress plugin</a> that already does something similar.</li>
</ul>
<p>There&#8217;s even the potential on some of these platforms to reply to the comments left (for example) on FriendFeed, via my blog, but cross-posting that reply back over to FriendFeed to keep the conversation alive.</p>
<p>What do you think about this idea? Which other services would you like to be able to aggregate conversations back from? Drop me some ideas in the comments below.</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2009/03/idea-comment-aggregation-via-wordpress/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
	</item>
		<item>
		<title>HOWTO: Implement Facebook Connect on WordPress (in reality)</title>
		<link>http://dentedreality.com.au/2008/12/implementing-facebook-connect-on-wordpress-in-reality/</link>
		<comments>http://dentedreality.com.au/2008/12/implementing-facebook-connect-on-wordpress-in-reality/#comments</comments>
		<pubDate>Thu, 18 Dec 2008 23:05:22 +0000</pubDate>
		<dc:creator>Beau Lebens</dc:creator>
				<category><![CDATA[Clients]]></category>
		<category><![CDATA[Featured]]></category>
		<category><![CDATA[Techn(ical|ology)]]></category>
		<category><![CDATA[@morganb]]></category>
		<category><![CDATA[blownmortgage.com]]></category>
		<category><![CDATA[comments]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[facebook connect]]></category>
		<category><![CDATA[fb connect]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[resumedonkey.com]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://dentedreality.com.au/?p=798</guid>
		<description><![CDATA[2008-12-23: There were a number of problems with the code samples in this post previously due to some WordPress formatting problems. They are all corrected now, and you should be able to follow through this post and get this working on your own blog quite easily. 2008-12-26: Fixed a bug that caused the JS to [...]]]></description>
			<content:encoded><![CDATA[<p><strong>2008-12-23: There were a number of problems with the code samples in this post previously due to some WordPress formatting problems. They are all corrected now, and you should be able to follow through this post and get this working on your own blog quite easily.</strong></p>
<p><strong>2008-12-26: Fixed a bug that caused the JS to overwrite details on a non-FB Connect comment as well. Also changed the fake email address that&#8217;s stored to include the user&#8217;s FB user ID.<br />
</strong></p>
<p>In case you&#8217;ve been living under a no-technology-news rock for the last few weeks, you&#8217;ll know that <a href="http://developers.facebook.com/news.php?blog=1&amp;story=108">Facebook Connect</a> was released recently. I had been seeing/hearing a lot about it, including <a href="http://mashable.com/2008/12/11/facebook-connect-blog/">this video at Mashable</a>, showing how to implement FB Connect in 8 minutes. So when my friend <a href="http://blownmortgage.com/">Morgan from BlownMortgage</a> asked me if I&#8217;d be able to help him implement it on his new resume-editing site <a href="http://resumedonkey.com/">ResumeDonkey.com</a>, I figured &#8220;how hard could it be&#8221; and said yes. Although it definitely didn&#8217;t take 8 minutes, I got it done, so I thought I&#8217;d post some details on the specific approach I used for ResumeDonkey.com.</p>
<p><span id="more-798"></span>Before I rolled my own solution, I took a good look at a few of the existing WordPress options including:</p>
<ul>
<li>The <a href="http://wiki.developers.facebook.com/index.php/WP-FBConnect">WP-FBConnect plugin</a>, made by Facebook,</li>
<li>Another <a href="http://www.sociable.es/facebook-connect/">WordPress plugin made by Sociable</a>, and</li>
<li>The <a href="http://staynalive.com/the-community-facebook-connect-plugin/">Community Facebook Connect Plugin</a>, by Jesse Stay</li>
</ul>
<p>None of these worked quite how Morgan and I had discussed, so I decided to make my own, lightweight solution. Before editing any actual theme files, there&#8217;s some prep-work to be done, so:</p>
<ol>
<li>Log into Facebook and then go and add the <a href="http://www.facebook.com/developers/">Facebook Developers Application</a></li>
<li>Click the big button at the top right to Set Up a New Application</li>
<li>Enter a name and agree to the terms (you read them all, right?)</li>
<li>On the next page, enter the base URL of your website in the &#8220;Callback URL&#8221; field. MAKE SURE you use the correct preference for your website as far as www. or no www. is concerned, and preferably enforce that on your website using a plugin or something. If you enter http://www.domain.com here, and someone accesses your site as http://domain.com, then your FB Connect integration will break and throw a warning about being on the wrong URL.</li>
<li>You can also set some sexy icons/logos to appear in the News Feed of people who comment on your blog, but I&#8217;ll let you handle that.</li>
<li>Get a copy of the &#8220;API Key&#8221; at the top of this page, you&#8217;ll need that later.</li>
</ol>
<p>OK, now we need to register a &#8220;template bundle&#8221;, which will be used to post updates to the News Feed of people who comment on your blog.</p>
<ol>
<li>Go to the <a href="http://www.facebook.com/developers/apps.php">list of your Facebook Apps</a> and click on the app we just created on the left</li>
<li>Click &#8220;Create Feed Template&#8221; in the list of links on the right</li>
<li>Make sure your correct App is selected in the box, then click Next</li>
<li>In the &#8220;One Line Template&#8221; box, paste this exact text
<pre>{*actor*} commented on the {*blog*} post {*post*}.</pre>
</li>
<li>In the &#8220;Sample Template Data&#8221; box, paste this (make sure quote marks are still  quotes and not fancy curly-quotes)
<pre>{"blog":"&lt;a href='http://test.domain.com'&gt;My Blog Name&lt;/a&gt;", "post":"&lt;a href='http://test.domain.com/post-url/'&gt;Test Post Title&lt;/a&gt;"}</pre>
</li>
<li>Click Update Preview and make sure that you&#8217;re happy with the News Feed format (if not, change the One Line Template string)</li>
<li>Click Next</li>
<li>Now click Skip (and ignore/Okay any errors) until you get to the final page and then click &#8220;Register Template Bundle&#8221;</li>
<li>It will give you a Template Bundle ID, and you&#8217;ll want to get a copy of that, because we&#8217;ll need it later as well.</li>
</ol>
<p>OK. Now you&#8217;ve got a registered and configured (roughly) App on Facebook, time to get dirty on your own blog. Create a file in the root of your domain and call it &#8220;xd_receiver.htm&#8221;, then copy the following code into it:</p>
<pre>&lt;!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"&gt;
&lt;html xmlns="http://www.w3.org/1999/xhtml"&gt;
&lt;head&gt;
&lt;title&gt;Cross-Domain Receiver Page&lt;/title&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;script src="http://static.ak.facebook.com/js/api_lib/v0.4/XdCommReceiver.js" type="text/javascript"&gt;&lt;/script&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>Add the &#8220;fb&#8221; XML namespace to the header.php file in your theme. Mine ended up looking like this (in PHP):</p>
<pre>&lt;html xmlns="http://www.w3.org/1999/xhtml" xmlns:fb="http://www.facebook.com/2008/fbml" &lt;?php language_attributes(); ?&gt;&gt;</pre>
<p>And also drop in a reference to jQuery if you don&#8217;t already use it in your theme. It&#8217;s bundled with WordPress so you can reference it like this (anywhere before the call to &#8220;wp_head()&#8221; in your header.php):</p>
<pre>&lt;?php wp_enqueue_script('jquery'); ?&gt;</pre>
<p>Then you&#8217;ll want to edit comments.php (assuming you&#8217;re using a relatively normal theme), and make some changes to add the FB Connect button. Find the part where a user would normally enter their name/email/URL and change it to look something like this:</p>
<pre>&lt;div id="comment-user-details"&gt;
&lt;fb:login-button length="long" onlogin="update_user_details();"&gt;&lt;/fb:login-button&gt;

&lt;p style="clear:left;"&gt;&lt;strong&gt;Or enter your details below:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;label for="name"&gt;Name &lt;?php if ($req) echo "(required)"; ?&gt;&lt;/label&gt;&lt;br /&gt;
&lt;input type="text" name="author" id="name" value="&lt;?php echo $comment_author; ?&gt;" size="50" tabindex="1" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;label for="email"&gt;Email Address &lt;?php if ($req) echo "(required)"; ?&gt;&lt;/label&gt;&lt;br /&gt;
&lt;input type="text" name="email" id="email" value="&lt;?php echo $comment_author_email; ?&gt;" size="50" tabindex="2" /&gt;&lt;/p&gt;

&lt;p&gt;&lt;label for="url"&gt;Website&lt;/label&gt;&lt;br /&gt;
&lt;input type="text" name="url" id="url" value="&lt;?php echo $comment_author_url; ?&gt;" size="50" tabindex="3" /&gt;&lt;/p&gt;
&lt;/div&gt;</pre>
<p>Just above this block, you should also find the start of the &lt;form&gt; tag for posting a comment, you want to add the &#8220;onsubmit&#8221; attribute to it so that it looks something like this:</p>
<pre>&lt;form action="&lt;?php echo get_option('siteurl'); ?&gt;/wp-comments-post.php" method="post" id="commentform" onsubmit="update_form_values();"&gt;</pre>
<p>The important parts there are that it&#8217;s all wrapped in a DIV or SPAN with id=&#8221;comment-user-details&#8221; and then obviously the &lt;fb:login-button&gt; stuff. Now further down (I went right down to the bottom of the comments.php file actually), add this code:</p>
<pre>&lt;script src="http://static.ak.connect.facebook.com/js/api_lib/v0.4/FeatureLoader.js.php" type="text/javascript"&gt;&lt;/script&gt;
&lt;style type="text/css"&gt;
#fb-user { border: 1px dotted #C0C0C0; padding: 5px; display: block; height: 48px; }
#fb-msg { float:left; }
.fb_profile_pic_rendered { margin-right: 5px; }
a.FB_Link img { float: left; }
&lt;/style&gt;

&lt;script type="text/javascript"&gt;
var fb_connect_user = false;
function update_user_details() {
fb_connect_user = true;
// Show their FB details
if (!jQuery('#fb-user').length) {
jQuery('#comment-user-details').hide().after("&lt;span id='fb-user'&gt;" +
"&lt;fb:profile-pic uid='loggedinuser' facebook-logo='true'&gt;&lt;/fb:profile-pic&gt;" +
"&lt;span id='fb-msg'&gt;&lt;strong&gt;Hi &lt;fb:name uid='loggedinuser' useyou='false'&gt;&lt;/fb:name&gt;!&lt;/strong&gt;&lt;br /&gt;You are logged in with your Facebook account. " +
"&lt;a href='#' onclick='FB.Connect.logoutAndRedirect(\"&lt;?php the_permalink() ?&gt;\"); return false;'&gt;Logout&lt;/a&gt;" +
"&lt;/span&gt;&lt;/span&gt;");
}

// Refresh the DOM
FB.XFBML.Host.parseDomTree();
}

function update_form_values() {
if (fb_connect_user) {
profile = jQuery('#fb-user').find('.FB_ElementReady .FB_Link')[1]['href'];
user_id = profile.substring(profile.indexOf('?id=')+4);
jQuery('#url').val(profile); // FB profile URL
jQuery('#email').val(user_id+'@facebook.com'); // Can't get a real one from FB unfortunately. This saves their user id @facebook.com
jQuery('#fb-user').find('.FB_ElementReady .FB_Link').each(function(i){ if (i==1) { jQuery('#name').val(jQuery(this).text()); } }); // Gets their name from the DOM
setCookie('fb_connect', 'yes');
}
}

function setCookie(c_name,value,expiredays) {
var exdate=new Date();
exdate.setDate(exdate.getDate()+expiredays);
document.cookie=c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString());
}

function getCookie(c_name) {
if (document.cookie.length&gt;0) {
c_start=document.cookie.indexOf(c_name + "=");
if (c_start!=-1) {
c_start=c_start + c_name.length+1;
c_end=document.cookie.indexOf(";",c_start);
if (c_end==-1) c_end=document.cookie.length;
return unescape(document.cookie.substring(c_start,c_end));
}
}
return "";
}

FB.init("YOUR-FACEBOOK-API-KEY", "/xd_receiver.htm");
FB.Connect.ifUserConnected(update_user_details);
if (getCookie('fb_connect') == 'yes') {
setCookie('fb_connect', null);
FB.Connect.showFeedDialog(YOUR-TEMPLATE-BUNDLE-ID, {'blog':'&lt;a href="&lt;?php bloginfo('home') ?&gt;"&gt;&lt;?php addslashes(bloginfo('name')) ?&gt;&lt;/a&gt;', 'post':'&lt;a href="&lt;?php the_permalink() ?&gt;"&gt;&lt;?php addslashes(the_title()) ?&gt;&lt;/a&gt;'}, null, null, null, FB.RequireConnect.promptConnect);
}
&lt;/script&gt;</pre>
<p>For those of you paying any attention to what you&#8217;re copy-pasting, you would have noticed that there are 2 important things you need to replace in that last block of code. Go back now and replace &#8220;YOUR-FACEBOOK-API-KEY&#8221; and &#8220;YOUR-TEMPLATE-BUNDLE-ID&#8221; with the appropriate values from the beginning of this process. YOUR-FACEBOOK-API-KEY should be replaced with the 32-character string from the Facebook App config, and <strong>should</strong> include double-quotes around it in the code above. The YOUR-TEMPLATE-BUNDLE-ID should <strong>not</strong> have quotes around it.</p>
<p>Save everything and upload it (if you were working offline). If all has gone well, you should now get a FB Connect button on your comments (you need to log out of WordPress to see it), and when you click it, you should connect to FB, then be able to post a comment.</p>
<p>When a Facebook user comments on your blog now, their name will be loaded from Facebook, their profile URL will be used as their URL, and the email address will be recorded as &#8220;user@facebook.com&#8221; (their API doesn&#8217;t allow you to actually get it, to avoid spam I assume).</p>
<p>Enjoy.</p>
]]></content:encoded>
			<wfw:commentRss>http://dentedreality.com.au/2008/12/implementing-facebook-connect-on-wordpress-in-reality/feed/</wfw:commentRss>
		<slash:comments>153</slash:comments>
	
	</item>
	</channel>
</rss>

