<?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/"
	>

<channel>
	<title>Made of Everything You&#039;re Not &#187; Facebook</title>
	<atom:link href="http://blog.ericlamb.net/tag/facebook/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ericlamb.net</link>
	<description>Thoughts on programming, people and life</description>
	<lastBuildDate>Thu, 29 Jul 2010 07:00:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Why I Hate Facebook Connect</title>
		<link>http://blog.ericlamb.net/2009/05/why-i-hate-facebook-connect/</link>
		<comments>http://blog.ericlamb.net/2009/05/why-i-hate-facebook-connect/#comments</comments>
		<pubDate>Wed, 13 May 2009 13:00:24 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[facebook connect]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=1089</guid>
		<description><![CDATA[In the Facebook Connect Primer I barely scratched the surface about the Facebook Connect service; I fully expected to research more and write about it. I had it all worked out in my head; in this post I wanted to outline how I was able to use the service and outline deeper features and functionality. [...]]]></description>
			<content:encoded><![CDATA[<p>In the <a title="Facebook Connect Primer" href="http://blog.ericlamb.net/2009/03/facebook-connect-primer/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F03%2Ffacebook-connect-primer%2F','Facebook+Connect+Primer')" target="_blank">Facebook Connect Primer</a> I barely scratched the surface about the Facebook Connect service; I fully expected to research more and write about it. I had it all worked out in my head; in this post I wanted to outline how I was able to use the service and outline deeper features and functionality.</p>
<div id="attachment_1651" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/05/hate_facebook.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F05%2Fhate_facebook.jpg','I+Hate+Facebook')"><img class="size-medium wp-image-1651" title="I Hate Facebook" src="http://blog.ericlamb.net/wp-content/uploads/2009/05/hate_facebook-300x199.jpg" alt="I Hate Facebook" width="300" height="199" /></a><p class="wp-caption-text">I Hate Facebook</p></div>
<p>Unfortunately, this just wasn&#8217;t possible because, well, all the documentation I could find on Facebook Connect was terribly outdated and inaccurate. So, instead, I&#8217;m going to talk about how painful it was trying to work with the system. Enjoy <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>I needed to find out as much as possible about the <a title="Facebook Connect" href="http://developers.facebook.com/connect.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fconnect.php','Facebook+Connect')" target="_blank">Facebook Connect</a> service so the first thing I thought to do was the Facebook demo site, &#8220;<a title="Download The Run Around" href="http://svn.facebook.com/svnroot/platform/samples/packages/therunaround.tar.gz" onclick="return TrackClick('http%3A%2F%2Fsvn.facebook.com%2Fsvnroot%2Fplatform%2Fsamples%2Fpackages%2Ftherunaround.tar.gz','Download+The+Run+Around')">The Run Around</a>&#8220;.</p>
<p>I first downloaded the file and extract and setup a development site on my development web server. I work on my Vista machine so it was pretty straightforward.</p>
<p>This was a mistake though. It turns out that development of Facebook Application projects requires an open connection to the Internet. It can not be behind a password screen.</p>
<p>FUCK! You have to work live on the Internet when developing; amateurs&#8230;</p>
<p>Anyway, after setting up the project on my computer the first thing I got was a screen full of undefined variable notices from php; the developers didn&#8217;t take the time to kill notices in the code or throw a call to:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #990000;">error_reporting</span><span style="color: #000;">&#40;</span><span style="color: #cc66cc;">0</span><span style="color: #000;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p>sigh&#8230;. have to fix&#8230;</p>
<p>Either, open up init.php and add the above code below the first &lt;?php, or do like I did and fix all the errors yourself.</p>
<p>The php notices aside, the first time it&#8217;s opened in a browser an error screen shows up saying to follow the instructions in lib/config.php.sample</p>
<div id="attachment_1092" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/03/fb_initial_error.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F03%2Ffb_initial_error.jpg','Initial+Error')"><img class="size-medium wp-image-1092" title="Initial Error" src="http://blog.ericlamb.net/wp-content/uploads/2009/03/fb_initial_error-300x65.jpg" alt="Initial Error" width="300" height="65" /></a><p class="wp-caption-text">Initial Error</p></div>
<p>You have to register for a developer account if you don&#8217;t already have one, like I did, and then create an application. This means, to me anyway, that Facebook Connect sites have to abide by the same Terms of Use as Facebook Applications.</p>
<p>Create a Facebook Application and go to the Connect tab. From here you can setup the callback URLs, upload a new image for the Connect confirmation screen and enter a base domain (this helps for cross domain access).</p>
<p>Of particular interest are these lines from the <a title="Terms of Service" href="http://developers.facebook.com/terms.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fterms.php','Terms+of+Service')" target="_blank">Terms of Service</a>:</p>
<blockquote><p>You can only cache user information for up to 24 hours to assist with performance. The only exceptions are those listed in the Facebook Platform Documentation.</p></blockquote>
<blockquote><p>However, you must get signoff from us before releasing any formal press releases.</p></blockquote>
<p>After reading the above, combined with the above frustrations, I decided to walk away from Facebook Connect entirely. This was a HORRIBLE research experience.</p>
<p>That was until recently when I found out about an upcoming project that requires integration with the service. Oh, well. At least I already have some research out of the way&#8230;</p>
<p>Good Reading:<br />
<a title="Facebook Platform Application Guidelines" href="http://developers.facebook.com/guidelines.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fguidelines.php','Facebook+Platform+Application+Guidelines')" target="_blank">Facebook Platform Application Guidelines</a><br />
<a title="Platform Policy" href="http://wiki.developers.facebook.com/index.php/Platform_Policy" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FPlatform_Policy','Platform+Policy')" target="_blank">Platform Policy</a><br />
<a title="Facebook Privacy Policy" href="http://www.facebook.com/policy.php" onclick="return TrackClick('http%3A%2F%2Fwww.facebook.com%2Fpolicy.php','Facebook+Privacy+Policy')" target="_blank">Facebook Privacy Policy</a><br />
<a title="Facebook Site Terms of Use" href="http://www.facebook.com/terms.php" onclick="return TrackClick('http%3A%2F%2Fwww.facebook.com%2Fterms.php','Facebook+Site+Terms+of+Use')" target="_blank">Facebook Site Terms of Use</a><br />
<a title="Facebook Platform Developer Copyright Information (if your application permits file-sharing)" href="http://developers.facebook.com/copyright.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fcopyright.php','Facebook+Platform+Developer+Copyright+Information+%28if+your+application+permits+file-sharing%29')" target="_blank">Facebook Platform Developer Copyright Information</a> (if your application permits file-sharing)<a title="Facebook Platform Documentation" href="http://wiki.developers.facebook.com/index.php" target="_blank"><br />
Facebook Platform Documentation</a><br />
<a title="How to Build a Facebook Application" href="http://www.digital-web.com/articles/building_facebook_applications/" onclick="return TrackClick('http%3A%2F%2Fwww.digital-web.com%2Farticles%2Fbuilding_facebook_applications%2F','How+to+Build+a+Facebook+Application')" target="_blank">How to Build a Facebook Application</a><br />
<a title="Facebook Application Tools" href="http://developers.facebook.com/tools.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Ftools.php','Facebook+Application+Tools')" target="_blank">Facebook Application Tools</a><br />
<a href="http://developers.facebook.com/get_started.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fget_started.php','Getting+Started+With+Facebook+Connect')">Getting Started With Facebook Connect</a><br />
<a href="http://troggerpath.wordpress.com/2009/02/03/fbconnect-why-not/" onclick="return TrackClick('http%3A%2F%2Ftroggerpath.wordpress.com%2F2009%2F02%2F03%2Ffbconnect-why-not%2F','FBConnect+-+5+reasons+why+we+dumped+it')">FBConnect &#8211; 5 reasons why we dumped it</a><br />
<a style="text-decoration: none;" title="API Functions" href="http://wiki.developers.facebook.com/index.php/Category:API_functions" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FCategory%3AAPI_functions','API+Functions')" target="_blank">API Functions</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/05/why-i-hate-facebook-connect/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook Connect Primer</title>
		<link>http://blog.ericlamb.net/2009/03/facebook-connect-primer/</link>
		<comments>http://blog.ericlamb.net/2009/03/facebook-connect-primer/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 13:59:40 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[facebook connect]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=1002</guid>
		<description><![CDATA[Facebook Connect is a new(ish) service from Facebook that allows integration between a users Facebook account and a third party website. The basic idea being that if a user updates their profile on Facebook the data gets updated on the third party website. Basics To start there are 4 different areas of integration with Facebook: [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Facebook Connect" href="http://developers.facebook.com/connect.php" onclick="return TrackClick('http%3A%2F%2Fdevelopers.facebook.com%2Fconnect.php','Facebook+Connect')" target="_blank">Facebook Connect</a> is a new(ish) service from Facebook that allows integration between a users Facebook account and a third party website. The basic idea being that if a user updates their profile on Facebook the data gets updated on the third party website.</p>
<div id="attachment_1005" class="wp-caption aligncenter" style="width: 134px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/03/facebook_logo.png" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F03%2Ffacebook_logo.png','Facebook+Logo')"><img class="size-full wp-image-1005" title="Facebook Logo" src="http://blog.ericlamb.net/wp-content/uploads/2009/03/facebook_logo.png" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F03%2Ffacebook_logo.png','Facebook+Logo')" alt="Facebook Logo" width="124" height="155" /></a><p class="wp-caption-text">Facebook Logo</p></div>
<h3>Basics</h3>
<p>To start there are 4 different areas of integration with <a title="Facebook" href="http://wiki.developers.facebook.com/index.php/Facebook_Connect" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FFacebook_Connect','Facebook')" target="_blank">Facebook</a>:</p>
<blockquote><p><strong>Identity</strong>. Seamlessly connect the user&#8217;s Facebook account and information with your site<br />
<strong>Friends</strong>. Bring a user&#8217;s Facebook friends into your site. You can link friends that have existing accounts and even invite new friends to your site.<br />
<strong>Discovery</strong>. Publish information back into their friends&#8217; News Feeds on Facebook.<br />
<strong>Privacy</strong>. Bring dynamic privacy to your site using XFBML.</p></blockquote>
<p>Using the above description, it appears that integrating FriendFeed Connect on your site, especially a social site, allows users to keep their online profiles in sync between websites.</p>
<p><strong>For example:</strong><br />
Assume I have a social site with Friends, profile pages and privacy settings.</p>
<p>When a Facebook user logs into my site I can prepopulate their profile data on my site with their profile data on Facebook. If there are other users on my site with a Facebook account I can move the users Friend list over as well. Finally, if my site allows customization of certain privacy settings I can keep those in sync as well.</p>
<p>Additionally, activity done on my site by a Facebook user can be pushed out to their Facebook profile.</p>
<p>And the coolest part? The user just updates their Facebook page to update my site!</p>
<p>Pretty cool really.</p>
<h3>Not all sweet though&#8230;</h3>
<p>There are some interface destroying <a href="http://wiki.developers.facebook.com/index.php/Facebook_Connect_Policies#Login.2FConnect" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FFacebook_Connect_Policies%23Login.2FConnect','guidelines')" target="_blank">guidelines</a>, as well as some restrictions, third party sites have to abide by.</p>
<blockquote><p>1. The website must display and use one of the approved Facebook Connect buttons on <a title="Facebook Connect Login Buttons" href="http://wiki.developers.facebook.com/index.php/Facebook_Connect_Login_Buttons" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FFacebook_Connect_Login_Buttons','Facebook+Connect+Login+Buttons')" target="_blank">Facebook Connect Login Buttons</a> to begin the &#8220;Connect&#8221; process.</p>
<p>2. When Facebook Connect is used to allow a user to &#8220;sign in&#8221; or authenticate with your website, the Facebook Connect option must be presented at least as prominently as the most prominent of any other sign in or authentication method on your site, and not as a secondary option.</p>
<p>4. When a user has connected their account and is currently logged in on your site, the application must show the profile picture and name of the user in a visible place on the page. This profile picture should be no smaller than 16&#215;16 pixels and should include the Facebook &#8220;f&#8221; favicon in the lower right corner. If the profile picture is too small to position the icon over the lower right corner, you can position the favicon to the right of the picture.</p>
<p>6. If you have an application on Facebook and a website that implements Facebook Connect, the user will need to explicitly connect on your website before your website can use their information. However, once the user has both authorized the application and connected to your website, you can link the information.</p>
<p>8. Facebook Connect applications cannot publish one line stories automatically via the Facebook Platform API (i.e., without being presented to the user in a Feed form) unless the story and template have been approved through the Facebook Connect approval process.</p>
<p>9. When a user completes an action in an application that would prompt a <a title="Publishing Feed Stories to Facebook" href="http://wiki.developers.facebook.com/index.php/Publishing_Feed_Stories_to_Facebook#Using_Feed_Forms" onclick="return TrackClick('http%3A%2F%2Fwiki.developers.facebook.com%2Findex.php%2FPublishing_Feed_Stories_to_Facebook%23Using_Feed_Forms','Publishing+Feed+Stories+to+Facebook')" target="_blank">Feed form</a>, the application should add a check box (to the part of the flow associated with completing the action) asking the user if they want to share this information through Facebook (e.g., &#8220;Share this run with my Facebook friends?&#8221;).  The check box may be pre-checked by default, but if the user unchecks this check box during the flow, the Feed form should not be shown.</p>
<p>11. When representing a list of friends to a user on the website, which includes a set of friends from the user&#8217;s full Facebook friend list, the website must indicate that the friend relationship on this website is associated with their friend relationship on Facebook. It is recommended that you use a Facebook favicon or the word &#8220;Facebook&#8221; to indicate that these friend relationships are associated with Facebook.</p></blockquote>
<p>Still, even with all the work the above entails, it&#8217;s a compelling service.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/03/facebook-connect-primer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
