<?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:slash="http://purl.org/rss/1.0/modules/slash/" 
>

<channel>
	<title>Marketing Ninja &#187; Facebook Applications</title>
	<atom:link href="http://www.marketing-ninja.com/category/facebook-app/feed" rel="self" type="application/rss+xml" />
	<link>http://www.marketing-ninja.com</link>
	<description>The Gruesome Diary of an Online Marketer</description>
	<pubDate>Tue, 23 Dec 2008 21:56:36 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<item>
		<title>Bebo Open Application Platform Supports Facebook Application Portability, eh?</title>
		<link>http://www.marketing-ninja.com/facebook-app/bebo-open-application-platform-supports-facebook-application-portability-eh/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/bebo-open-application-platform-supports-facebook-application-portability-eh/#comments</comments>
		<pubDate>Thu, 20 Dec 2007 12:30:00 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=273</guid>
		<description><![CDATA[
An article appeared on Mashable last week disclosing some of the details about Bebo&#8217;s new Open Application Platform; a subsequent article revealed that Bebo&#8217;s platform supposedly supports the entire F8 Platform, including FBML. Since Mashable is incapable of actually linking to the actual article that it covered, or anything other than other unintelligble Mashable articles, [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.ajaxninja.com/wp-content/uploads/2007/12/bebo-logo.png" rel="lightbox" title="bebo-logo.PNG"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/12/bebo-logo-tn.jpg" title="bebo-logo.PNG" alt="bebo-logo.PNG" id="urn:zoundry:jid:bebo-logo.PNG" border="0" height="48" width="128" /></a></p>
<p>An article appeared <a href="http://mashable.com/2007/12/11/bebo-platform/">on Mashable last week</a> disclosing some of the details about <a href="http://www.bebo.com/docs/snml/index.jsp">Bebo&#8217;s new Open Application Platform</a>; a subsequent article revealed that Bebo&#8217;s platform <a href="http://mashable.com/2007/12/12/bebo-open-application-platform-facebook-support/">supposedly supports the entire F8 Platform</a>, <a href="http://blog.programmableweb.com/2007/12/13/bebo-api-launches-with-facebook-support/">including FBML</a>. Since Mashable is incapable of actually linking to the actual article that it covered, or anything other than other unintelligble Mashable articles, I have taken the liberty of providing you with <a href="http://www.bebo.com/Press.jsp?PressPageId=5124786617">a link to Bebo&#8217;s original press release</a>.</p>
<p>I blew off the news as yet another empty Web 2.0 promise, but when the guys from <a href="http://www.adooga.com/">ADOOGA</a> asked me to look into porting <a href="http://www.ajaxninja.com/?p=267">my most recent Facebook application</a>, <a href="http://www.facebook.com/apps/application.php?api_key=2291f44020ceb75fd562234ceb0862b6">&#8220;Contest of the Day&#8221;</a>, I decided to take a closer look.</p>
<h3>After half an hour of perusing the site I still have no idea how to create a developer account</h3>
<p>Having never used Bebo before, my first step was obviously to sign up as a regular Bebo user. Great. This <a href="http://www.bebo.com/AaronS7722">new Bebo account</a> sure looks nifty. Not like I&#8217;ll ever use it since I don&#8217;t even know any body who uses, let alone has heard of, Bebo. Step 2 is to create a developer account; easy, right?</p>
<p><strong>Wrong</strong>. I&#8217;ve looked through the developer documentation and exhaustively searched throughout it but I still can&#8217;t figure out how in the hell I create a damn developer account. Apparently a <a href="http://www.insidefacebook.com/2007/12/12/breaking-bebo-launching-platform-tonight-adopts-facebook-platform-apis/">number of Inside Facebook commenters experienced the same problems that I have</a>; Inside Facebook author Justin Smith said that a link to create developer accounts &#8220;should be up by tonight (12/12/2007.)&#8221; As of writing this (shortly before 12/20/2007,) Mr. Smith still has not posted a link yet. Hmmh.</p>
<h3>The Future of Facebook Applications and Bebo</h3>
<p>All of the hype-blogs ranted about Bebo&#8217;s Open Application Platform as though it was some sort of game-changing event that would add more momentum towards Facebook&#8217;s F8 platform and hinder the adoption of Google&#8217;s OpenSocial platform.</p>
<p>However, as all of those hype-blogs dutifully noted, Bebo will still add full OpenSocial support sometime in 2008.</p>
<p>I suspect that the move to support the F8 platform was made out of a <a href="http://venturebeat.com/2007/12/19/bebo-brings-in-bank-but-says-its-not-looking-to-sell/">need to draw more funding</a>. Perhaps it was also to capitalize the rich breadth of available Facebook applications which could potentially add more functionality to Bebo&#8217;s network. Bebo, in my opinion, offers a rather bare service compared to the richness of MySpace or Facebook.</p>
<p>As the <a href="http://www.quantcast.com/traffic-compare.jsp?domain0=bebo.com&amp;domain1=facebook.com&amp;domain2=myspace.com&amp;domain3=linkedin.com&amp;domain4=">Quantcast graph below</a> shows, Bebo is a blip on the social networking radar screen.</p>
<p style="text-align: center"><a href="http://www.quantcast.com/traffic-compare.jsp?domain0=bebo.com&amp;domain1=facebook.com&amp;domain2=myspace.com&amp;domain3=linkedin.com&amp;domain4="><img src="http://www.quantcast.com/livegraph.png?gt=lwg&amp;dty=ck&amp;dtr=dd&amp;wunit=wd%3Acom.bebo%7C0+wd%3Acom.facebook%7C1+wd%3Acom.myspace%7C2&amp;c=1" height="198" width="298" title="Bebo Open Application Platform Supports Facebook Application Portability, eh?" alt=" Bebo Open Application Platform Supports Facebook Application Portability, eh?" /></a></p>
<p align="center"><em>(<a href="http://www.quantcast.com/traffic-compare.jsp?domain0=bebo.com&amp;domain1=facebook.com&amp;domain2=myspace.com&amp;domain3=linkedin.com&amp;domain4=">Click for a larger Graph</a>)</em></p>
<p>Bebo&#8217;s move to support Facebook applications is perhaps an attempt acquire new users, perhaps former Facebookers who are already familiar with a number of applications that may be ported over to Bebo&#8217;s platform eventually. Bebo needs all of the help it can get, whether it be funding or new users.</p>
<p class="zoundry_bw_tags">   <!-- Tag links generated by Zoundry Blog Writer. Do not manually edit. http://www.zoundry.com --><br />
<span class="ztags"><span class="ztagspace">Technorati</span> : <a href="http://technorati.com/tag/Bebo" class="ztag" rel="tag">Bebo</a>, <a href="http://technorati.com/tag/Facebook" class="ztag" rel="tag">Facebook</a>, <a href="http://technorati.com/tag/Facebook%20Applications" class="ztag" rel="tag">Facebook Applications</a></span><br />
<span class="ztags"><span class="ztagspace">Del.icio.us</span> : <a href="http://del.icio.us/tag/Bebo" class="ztag" rel="tag">Bebo</a>, <a href="http://del.icio.us/tag/Facebook" class="ztag" rel="tag">Facebook</a>, <a href="http://del.icio.us/tag/Facebook+Applications" class="ztag" rel="tag">Facebook Applications</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/bebo-open-application-platform-supports-facebook-application-portability-eh/feed/</wfw:commentRss>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>My First Published Facebook Application: ADOOGA Contest of the Day</title>
		<link>http://www.marketing-ninja.com/facebook-app/my-first-published-facebook-application-adooga-contest-of-the-day/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/my-first-published-facebook-application-adooga-contest-of-the-day/#comments</comments>
		<pubDate>Thu, 13 Dec 2007 21:55:09 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[ADOOGA]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=267</guid>
		<description><![CDATA[
Alright, as promised, it&#8217;s time for me to reveal my first published Facebook application: ADOOGA Contest of the Day. I&#8217;ve started several applications and built many of them to 90% completion, but Vanderbilt&#8217;s coursework usually found a way to interfere with my production schedule and forced me to table release until later.
 The last 10% [...]]]></description>
			<content:encoded><![CDATA[<p style="float: right"><img src='http://www.marketing-ninja.com/wp-content/uploads/2008/03/logo.gif' alt='ADOOGA Logo' title="My First Published Facebook Application: ADOOGA Contest of the Day" /></p>
<p>Alright, as promised, it&#8217;s time for me to reveal my first published Facebook application: <a href="http://www.facebook.com/apps/application.php?api_key=2291f44020ceb75fd562234ceb0862b6">ADOOGA Contest of the Day</a>. I&#8217;ve started several applications and built many of them to 90% completion, but Vanderbilt&#8217;s coursework usually found a way to interfere with my production schedule and forced me to table release until later.</p>
<blockquote><p> The last 10% is always the hardest part, after all.</p></blockquote>
<p><strong>What Does ADOOGA Do?<br />
</strong></p>
<p><a href="http://www.adooga.com/">ADOOGA</a> is an online firm that specializes in syndicating brand-based online contests.</p>
<ul>
<li>If you&#8217;re a film maker and you want to find an online contest to submit some of your work;</li>
<li>if you&#8217;re a programmer and you want to put your skills to the test in a competitive project design contest;</li>
<li>or if you&#8217;re a creative type of any sort and you want to earn some revenue in a sponsored contest,</li>
</ul>
<p>then ADOOGA has a contest somewhere in its database that may help you earn some winnings by virtue of your creative capacities. That&#8217;s my elevator pitch on what ADOOGA does. You can learn more about their organization on <a href="http://www.adooga.com/alpha/index.php?p=about">ADOOGA&#8217;s about page.</a></p>
<p><strong>What Does <a href="http://www.facebook.com/apps/application.php?api_key=2291f44020ceb75fd562234ceb0862b6">ADOOGA Contest of the Day</a> Do?</strong></p>
<p>ADOOGA Contest of the Day is a pretty simple, unintrusive Facebook application. It downloads the seven most recent &#8220;Contests of the Day&#8221; from ADOOGA and enables you to share them with your friends by publishing the contest into your mini feed.</p>
<p>The application doesn&#8217;t put anything on your profile page and it doesn&#8217;t publish any content without your consent.</p>
<blockquote><p>If you&#8217;re one of the creative types that I outlined earlier, then you might enjoy getting instant access to ADOOGA&#8217;s premiere contests via your Facebook account.</p></blockquote>
<p><strong>How Did I Build It?</strong></p>
<p>While I&#8217;m not going to write a highly detailed post on how ADOOGA Contest of the Day is constructed given that ADOOGA owns the intellectual property, I&#8217;ll quickly iterate over some of the technology I used:</p>
<ul>
<li>ASP.NET</li>
<li>Facebook.NET - FBML implementation</li>
<li>XSLT 1.0 - Used it for generating FBML output (yes, you can do that with XSL)</li>
<li>XPath/XQuery</li>
<li>FBJS - Used it for modal dialogs and Facebook&#8217;s handy AJAX library</li>
</ul>
<p>I was tempted to use Mock AJAX, but it proved to be unsuitable given the method I utilized for producing the FBML output.</p>
<p>Go ahead and check out the application and let me know what you think!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/my-first-published-facebook-application-adooga-contest-of-the-day/feed/</wfw:commentRss>
	<slash:comments>2</slash:comments>
	</item>
		<item>
		<title>Facebook.NET Tip: Use User Controls for FBML/UI Reuse</title>
		<link>http://www.marketing-ninja.com/old-stuff/facebooknet-tip-use-user-controls-for-fbmlui-reuse/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/facebooknet-tip-use-user-controls-for-fbmlui-reuse/#comments</comments>
		<pubDate>Fri, 07 Dec 2007 00:03:42 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=265</guid>
		<description><![CDATA[
Time to make good on my promise for some new Facebook-related content this week.
I&#8217;ve spent the past two weeks grinding away on an Facebook.NET-powered Facebook application that relies on the FBML approach for user interfaces and it&#8217;s finally finished.
Over the next couple of weeks I&#8217;m going to share some wisdom I accrued during the course [...]]]></description>
			<content:encoded><![CDATA[<div style="FLOAT: left"><img width="200" alt="Facebook Logo" height="75" src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg" title="Facebook.NET Tip: Use User Controls for FBML/UI Reuse" /></div>
<p>Time to make good on my promise for some new Facebook-related content this week.</p>
<p>I&#8217;ve spent the past two weeks grinding away on an Facebook.NET-powered Facebook application that relies on the FBML approach for user interfaces and it&#8217;s finally finished.</p>
<p>Over the next couple of weeks I&#8217;m going to share some wisdom I accrued during the course of this last development cycle.</p>
<h2>Use User Controls for FBML/UI Reuse</h2>
<p><a href="http://www.15seconds.com/issue/020319.htm">Custom server controls</a> are often unnecessary for a lot of the needs of typical FBML-powered interfaces in Facebook.NET. They can take a while to program and given how rapidly the FBML standards are changing, they will require a large amount of maintenance. In addition the HTML writer classes don&#8217;t support the FBML markup.</p>
<p><strong><em>User Controls</em></strong>, on the other hand, offer a cheap, robust way to reuse user interface elements without any additional coding.</p>
<h3>Example 1:</h3>
<p>A quick example of where a user control might be necessary is the stylesheet element.</p>
<blockquote>
<p>One of the drawbacks of FBML is that you can&#8217;t import external stylesheets into your FBML elements, thus you have to hardcode any custom CSS elements into those lovely <code>&lt;style&gt;</code> tags that we are so found of.</p>
</blockquote>
<p><strong>It&#8217;s bad practice to copy and paste the style sheet from page to page</strong>; <span style="TEXT-DECORATION: underline">we want to maintain the stylesheet from a single location</span>, which is why we have external stylesheets to begin with.</p>
<p>Obviously, we should stick the stylesheet into a User Control and insert that tag on pages where we need stylesheets. You can also use MasterPages and Themes to potentially resolve this issue, but in my experience, User Controls offer the most flexibility.</p>
<p>Here&#8217;s a quick bit of sample code:</p>
<h4>FacebookCSS.ascx</h4>
<p>
<code>&lt;%@ Control Language="C#" AutoEventWireup="true" CodeFile="FacebookCSS.ascx.cs"<br />
Inherits="Controls_FacebookCSS" %&gt;<br />
&lt;style&gt;<br />
p, body{<br />
	font:10px/12px arial, helvetica, sans-serif;<br />
	color: #022e37;<br />
}<br />
a:link{<br />
	text-decoration: none;<br />
}<br />
a:visited{<br />
	text-decoration: none;<br />
}<br />
a:active{<br />
	text-decoration: none;<br />
}<br />
a:hover{</p>
<p>	text-decoration: underline;<br />
}<br />
&lt;/style&gt;</code>
</p>
<h4>Web.config (relevant sections only)</h4>
<p>
<code>&lt;pages&gt;<br />
      &lt;controls&gt;<br />
        &lt;add tagPrefix="fb" assembly="FacebookNET.Web" namespace="Facebook.Web"/&gt;<br />
        &lt;add tagPrefix="fb" assembly="FacebookNET.Web" namespace="Facebook.Web.IFrame"/&gt;<br />
        &lt;add tagPrefix="FBNet" tagName="FacebookCSS" src="~/FacebookCSS.ascx"/&gt;<br />
        &lt;add tagPrefix="FBNet" tagName="FBJS" src="~/FBJS.ascx"/&gt;<br />
      &lt;/controls&gt;<br />
&lt;/pages&gt;</code>
</p>
<h4>MasterPage.Master</h4>
<p>
<code>&lt;%@ Master Language="C#" AutoEventWireup="true" CodeFile="MasterPage.master.cs" Inherits="MasterPage" EnableTheming="true" %&gt;<br />
&lt;%@ Import Namespace="Facebook.Service" %&gt;<br />
&lt;fb:FacebookApplication runat="server" ID="FacebookApplication"<br />
    ApplicationName="Facebook.NET App" Mode="Fbml"<br />
    EnableDebugging="true" EnableAjaxScenarios="true"&gt;&lt;/fb:FacebookApplication&gt;<br />
&lt;fb:fbml version="1.0"&gt;<br />
    &lt;FBNet:FacebookCSS ID="FBCss" runat="server" /&gt;<br />
    &lt;FBNet:FBJS ID="FBJS" runat="server" /&gt;<br />
    &lt;fb:dashboard&gt;<br />
        &lt;fb:action href="Default.aspx"&gt;Home&lt;/fb:action&gt;<br />
        &lt;fb:action href="About.aspx"&gt;About&lt;/fb:action&gt;<br />
    &lt;/fb:dashboard&gt;<br />
    &lt;div class="primary_container"&gt;<br />
        &lt;asp:contentplaceholder id="ContentPlaceHolder1" runat="server"&gt;<br />
        &lt;/asp:contentplaceholder&gt;<br />
    &lt;/div&gt;<br />
&lt;/fb:fbml&gt;</code>
</p>
<p>Although this tip is somewhat simple, it will allow you to design your FBML application as though you were using an external stylesheet, although you&#8217;ll be editing a .ASCX file instead of a .CSS one, I suppose. Regardless, this will serve as a fine substitute for external stylesheets.</p>
<div style="text-align:center"/><!--adsense#programmer--></div>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/facebooknet-tip-use-user-controls-for-fbmlui-reuse/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>Facebook.NET Hacks - How to Publish an Item on a User&#8217;s Feed</title>
		<link>http://www.marketing-ninja.com/facebook-app/facebooknet-hacks-how-to-publish-an-item-on-a-users-feed/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/facebooknet-hacks-how-to-publish-an-item-on-a-users-feed/#comments</comments>
		<pubDate>Thu, 22 Nov 2007 21:41:36 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=258</guid>
		<description><![CDATA[
Developing Facebook applications is a trying and frustrating experience for many developers, myself included. My most recent frustration was getting an item to publish to the user&#8217;s mini-feed/friend&#8217;s newsfeed  using Facebook.NET.
Publishing frustrations aren&#8217;t isolated to just Facebook.NET; they extend to a lot of Facebook.NET developers out there. Here&#8217;s what I&#8217;ve learned about how to [...]]]></description>
			<content:encoded><![CDATA[<p style="float: right"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg" alt="Facebook Logo" title="Facebook.NET Hacks - How to Publish an Item on a Users Feed" /></p>
<p>Developing Facebook applications is a trying and frustrating experience for many developers, myself included. My most recent frustration was getting an item to publish to the user&#8217;s mini-feed/friend&#8217;s newsfeed  using <a href="http://www.nikhilk.net/FacebookNET.aspx">Facebook.NET</a>.</p>
<p>Publishing frustrations aren&#8217;t isolated to just Facebook.NET; they extend to a lot of Facebook.NET developers out there. Here&#8217;s what I&#8217;ve learned about how to publish to a Facebook user&#8217;s mini feed:</p>
<h3>Use the <a href="http://developers.facebook.com/tools.php?feed">Feed Preview Console</a> with Caution</h3>
<p>The Feed Preview Console is a handy tool for figuring out what your published feed items may look like, but it needs to be used with caution. Why?</p>
<blockquote><p><strong>A number of HTML elements that can&#8217;t be rendered in the news feed via the Feed.publishTemplatizedActioncall can still be rendered using the Feed Preview Console.</strong></p></blockquote>
<p>I learned this the hard way; I had a feed template that included a number of &lt;hr&gt;, &lt;br&gt;, and &lt;p&gt; tags and the Feed Preview Console rendered it without a complaint. However, when I attempted to publish that template I received a number of 360 and 362 errors from Facebook&#8217;s REST servers.</p>
<blockquote><p>The Feed Preview Console will not let you know if you have gone past the character limits for the title and body sections of your news feed items. In short, the Feed Preview Console must not be used for validation of your feed templates; it should only be used for getting an idea of what your feed items may look like.</p></blockquote>
<p>This brings me to my next piece of advice.</p>
<h3>Read the <a href="http://wiki.developers.facebook.com/index.php/Feed.publishTemplatizedAction">Feed.publishTemplatizedActiondocumentation</a> VERY carefully</h3>
<p>So the Feed Preview Console published a handful of invalid templates without any warnings; what I should have done is read through the documentation for the API call more carefully. Here are the tidbits that you may have missed:</p>
<ul>
<li><strong>In the title_template parameter</strong>
<ol>
<li>
<p>The title_template can only contain 60 characters, excluding markup tags. It&#8217;s unclear if the 60 character limits includes the value of {actor}. I&#8217;ve actually asked this question on the <a href="http://wiki.developers.facebook.com/index.php/Talk:Feed.publishTemplatizedAction">talk page of the Feed.publishTemplatizedAction</a> on the developer&#8217;s wiki.</p>
</li>
<li>
<p>The <a href="http://wiki.developers.facebook.com/index.php/Fb:name" title="Fb:name">&lt;fb:name&gt;</a>, <a href="http://wiki.developers.facebook.com/index.php/Fb:pronoun" title="Fb:pronoun">&lt;fb:pronoun&gt;</a>, <a href="http://wiki.developers.facebook.com/index.php?title=Fb:if-multiple-actors&amp;action=edit" class="new" title="Fb:if-multiple-actors">&lt;fb:if-multiple-actors&gt;</a>, and &lt;a&gt; tags are allowed. <strong>No other tags are allowed</strong> (despite what may render in the Feed Preview Console.)</p>
</li>
</ol>
</li>
<li><strong>In the body_template parameter</strong>
<ol>
<li>
<p> The <a href="http://wiki.developers.facebook.com/index.php/Fb:userlink" title="Fb:userlink">&lt;fb:userlink&gt;</a>, <a href="http://wiki.developers.facebook.com/index.php/Fb:name" title="Fb:name">&lt;fb:name&gt;</a>, <a href="http://wiki.developers.facebook.com/index.php/Fb:pronoun" title="Fb:pronoun">&lt;fb:pronoun&gt;</a>, <a href="http://wiki.developers.facebook.com/index.php?title=Fb:if-multiple-actors&amp;action=edit" class="new" title="Fb:if-multiple-actors">&lt;fb:if-multiple-actors&gt;</a> &lt;a&gt;, &lt;b&gt;, and &lt;i&gt; tags are allowed. <strong>No other tags are allowed</strong> (despite what may render in the Feed Preview Console.)</p>
</li>
</ol>
</li>
<li>
<p><strong>Applications are limited to calling this function 10 times for each user or Page in a rolling 48-hour window</strong>.</p>
<p>This means that you can only call this function 10 times within 48 hours for a given {actor}. I read on the developer&#8217;s Facebook group that test accounts are not subject to this restriction; <strong>however, this is not the case</strong>. I am currently receiving error 343 using my test account, which is the &#8220;maximum calls reached&#8221; error code; it&#8217;s not listed in the documentation for Feed.publishTemplatizedAction.</p>
<blockquote><p>&#8220;error_code&#8221;:341,&#8221;error_msg&#8221;:&#8221;Feed action request limit reached&#8221;</p></blockquote>
</li>
<li>
<p><strong>Facebook must be able to issue HTTP requests to any images that you include in your published feed.</strong></p>
<p>Unfortunately this didn&#8217;t occur to me until hours into my debugging; Facebook uses a proxy-caching system in order to help maintain scalability, which I described in my <a href="http://www.ajaxninja.com/?p=55">New Facebook Application Form Demystification</a> article. The images I was trying to publish were protected behind windows authentication, thus Facebook couldn&#8217;t request them, thus my publish attempt failed for yet another reason.</p>
</li>
</ul>
<h3>Don&#8217;t Rely on Facebook.NET&#8217;s Service.Feed.PublishTemplatedStory for Validation</h3>
<p>Long story short, you need to validate the data yourself before you hand it off to the Facebook.NET Feed service; Facebook.NET doesn&#8217;t validate the data, that responsibility falls on you. Here are some quick validation tips:</p>
<ol>
<li>
<p>Make sure you don&#8217;t have any single quotes (tick marks) in your JSON-encoded array; this will invalidate the array&#8217;s integrity.</p>
</li>
<li>
<p>If you haven&#8217;t provided validation of user input already, then make sure that you use Server.HTMLEncode any data that has been provided by the user. The point of using the HTMLEncode is not to protect against malicious HTML markup; it&#8217;s to prevent benign input that uses characters like double quotes, tags, and so from being discarded as they can break that array&#8217;s integrity.</p>
</li>
</ol>
<h3>Facebook.NET Hides Messages Returned by Facebook</h3>
<p>Facebook.NET hides all error messages returned by Facebook, an issue which makes it nearly impossible to debug. I went and hacked my Facebook.NET and added a function called Service.Feed.PublishTemplatedStoryResponse, which returns the FacebookResponse object gathered by Facebook.NET. </p>
<p>I posted <a href="http://www.codeplex.com/FacebookNET/WorkItem/View.aspx?WorkItemId=2458"> an issue on CodePlex asking for FacebookResponse support in the future</a> so we can debug our applications properly, but for now we&#8217;re going to have to rely on either guess-and-check debugging or we&#8217;re going to have to hack Facebook.NET, like how I did.</p>
<p>If you have any additional information on Feed.publishTemplatizedAction, post it here or on the <a href="http://wiki.developers.facebook.com/index.php/Talk:Feed.publishTemplatizedAction">Facebook Developer&#8217;s Wiki Talk Page for Feed.publishTemplatizedAction</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/facebooknet-hacks-how-to-publish-an-item-on-a-users-feed/feed/</wfw:commentRss>
	<slash:comments>7</slash:comments>
	</item>
		<item>
		<title>AjaxNinja Mentioned in Monster.com&#8217;s Tech Career Advice Column</title>
		<link>http://www.marketing-ninja.com/facebook-app/ajaxninja-mentioned-in-monstercoms-tech-career-advice-column/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/ajaxninja-mentioned-in-monstercoms-tech-career-advice-column/#comments</comments>
		<pubDate>Fri, 16 Nov 2007 10:44:28 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=254</guid>
		<description><![CDATA[
I was asked a couple of questions by Allan Hoffman, the &#8220;tech jobs expert&#8221; at Monster.com, regarding Facebook application development for his piece, &#8220;So You Wanna Be a Facebook App Development Star?&#8221;. It&#8217;s a great read if you&#8217;re looking for a great introduction to Facebook applications, and towards the end Allan uses a quote by [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/11/logo_career_advice_l.gif" alt="Monster.com Career Advice Logo" title="AjaxNinja Mentioned in Monster.coms Tech Career Advice Column" /></p>
<p>I was asked a couple of questions by Allan Hoffman, the &#8220;tech jobs expert&#8221; at Monster.com, regarding Facebook application development for his piece, <a href="http://career-advice.monster.com/job-industry-profiles/technology/facebook-application-development/home.aspx">&#8220;So You Wanna Be a Facebook App Development Star?&#8221;</a>. It&#8217;s a great read if you&#8217;re looking for a great introduction to Facebook applications, and towards the end Allan uses a quote by me regarding the subject of Facebook application monetization.</p>
<p>I don&#8217;t mean to pat myself on the back, but I think it&#8217;s a great article. <a href="http://career-advice.monster.com/job-industry-profiles/technology/facebook-application-development/home.aspx">Check it out here</a>.</p>
<p>I should have a piece out later today (after I get some sleep and fly back to San Diego) on entrepreneurship, but I apologize for the slow week; I&#8217;ve had a lot of papers and exams this week at Vanderbilt so I&#8217;ve been a bit behind on my blogging activities, but I&#8217;m on vacation next week so I should have most of that behind me.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/ajaxninja-mentioned-in-monstercoms-tech-career-advice-column/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>Facebook.NET Workaround - Debug FBML on the Localhost with Dynamic DNS</title>
		<link>http://www.marketing-ninja.com/old-stuff/facebooknet-workaround-debug-fbml-on-the-localhost-with-dynamic-dns/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/facebooknet-workaround-debug-fbml-on-the-localhost-with-dynamic-dns/#comments</comments>
		<pubDate>Mon, 12 Nov 2007 21:37:08 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=251</guid>
		<description><![CDATA[
Just a quick post for today, but a valuable one nonetheless. I have mentioned before how I prefer developing Facebook.NET applications using the Iframe method of implementation, namely because I didn&#8217;t think it was possible to debug FBML implementations on the localhost.
Cameron, an AjaxNinja reader, found the following comment on Nikhil&#8217;s blog, which explains how [...]]]></description>
			<content:encoded><![CDATA[<div style="float:left;"><img src='http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg' alt='Facebook Logo' title="Facebook.NET Workaround - Debug FBML on the Localhost with Dynamic DNS" /></div>
<p>Just a quick post for today, but a valuable one nonetheless. I have mentioned before how I prefer developing <a href="http://www.nikhilk.net/FacebookNET.aspx">Facebook.NET</a> applications using the Iframe method of implementation, namely because <a href="http://www.ajaxninja.com/?p=194">I didn&#8217;t think it was possible to debug FBML implementations on the localhost</a>.</p>
<p>Cameron, an AjaxNinja reader, found the following comment on Nikhil&#8217;s blog, which explains how you can debug FBML on the localhost:</p>
<blockquote><p>JustinM<br />
Posted on 10/22/2007 @ 7:14 AM<br />
Manjit,</p>
<p>Yes you can debug locally with fbml apps. What I did is get a free dynamic dns (<a href="http://www.dyndns.com/">gotdns.com</a>), port forward port 80 (actually in my case port 8080, as some other machine is using 80) directly to my development laptop that has IIS running (Vista Ultimate, note the Application Pool may need to be set to “classic”). </p>
<p>Then made a local dns entry in windows\system32\etc\hosts file to have the dns entry point to 127.0.0.1 for resolving url’s that point directly to my site (images). Everything works fine.</p></blockquote>
<p>While I haven&#8217;t tried this yet (I&#8217;m still developing my applications in IFrame), I may give it a go if I keep running into an annoying post-back issue that causes my application to force existing users to re-add it.</p>
<p>Nice find, Cameron!</p>
<h2>Update</h2>
<p>I received a couple of emails from Cameron this morning; apparently this Dynamic DNS solution isn&#8217;t as easy as it sounded initially:</p>
<blockquote><p>Having been running into issues the the DNS redirect solution.</p>
<ol>
<li>You need access to your WIFI access point to complete the port<br />
forwarding.<br/>This rules out mobile workers, ie. coffee shops</li>
<li>host file will need to be updated every time your DHCP server assigns<br />
a new IP</li>
<li> I have been able to get past the above two but have had some issues<br />
discovering the IP that points to my default gateway&#8217;s IP.</li>
</ol>
<p>Hope this helps with your article. I will send any other suggestions<br />
that arise.</p></blockquote>
<p>Thanks for the great feedback!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/facebooknet-workaround-debug-fbml-on-the-localhost-with-dynamic-dns/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>You know, these Facebook test accounts kind of suck</title>
		<link>http://www.marketing-ninja.com/facebook-app/you-know-these-facebook-test-accounts-kind-of-suck/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/you-know-these-facebook-test-accounts-kind-of-suck/#comments</comments>
		<pubDate>Fri, 26 Oct 2007 04:33:55 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=225</guid>
		<description><![CDATA[

A week or so ago I wrote yet another post full of Facebook application development tips (and believe me there will be several more to come), and I mentioned using Facebook test accounts to assist in development. After a week or two of actual using the accounts extensively I must tell you that they are [...]]]></description>
			<content:encoded><![CDATA[<p><!--adsense#programmer--></p>
<div style="float:left;"><img src='http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg' alt='Facebook Logo' title="You know, these Facebook test accounts kind of suck" /></div>
<p>A week or so ago I wrote yet another post full of Facebook application development tips (and believe me there will be several more to come), and I mentioned using <a href="http://www.ajaxninja.com/?p=214">Facebook test accounts</a> to assist in development. After a week or two of actual using the accounts extensively I must tell you that they are not all they are cracked up to be.</p>
<p><strong>Why do we have test accounts in the first place?</strong></p>
<p>Facebook enabled developers to create test accounts namely to spare the developer&#8217;s friends from becoming guinea pigs for new application development, as this <a href="http://www.beaconfire.com/blog/2007/10/20/test-yourself-on-facebook/">blogger argues</a>. However, test accounts fall far short of eliminating that burden upon the friends of developer&#8217;s entirely.</p>
<p><strong>Reasons why Facebook test accounts suck</strong></p>
<ol>
<li>
<p><strong>It&#8217;s another freaking login you need to keep track of</strong> to manage a Facebook account. You need to create yet another new, real Facebook account, complete with a valid email address. I already have two Facebook accounts, one for managing my professional contacts and carrying out all of my Facebook application development and another account for managing my high school and college friends.</p>
<p>I originally chose to separate my accounts simply because I wanted to be able to easily separate professional and social contacts; to put up a wall between them, so to speak. I&#8217;m not so bothered by the fact that I now have a THIRD Facebook account to help me test, but I had to put this point on the list as it is an obvious irritant associated with creating a new Facebook account.</p>
</li>
<li>
<p><strong>You aren&#8217;t supposed to interact with regular Facebook users with a test account</strong> - Ok, so if I have an application designed to INTERACT WITH OTHER USERS, then can&#8217;t some of this behavior be construed as a violation of the test account terms of service? Fail.</p>
</li>
<li>
<p><strong>You can&#8217;t friend users with a test account</strong> If I have a brand new, fresh test account and I need to have X number of friends in order to test a feature (like if I want to see my friends&#8217; recent activity) then a test account simply will not suffice. Fail.</p>
</li>
<li>
<p><strong>If you&#8217;re building an application in developer-only mode, you can&#8217;t even use test accounts</strong> because you can&#8217;t add them as developers, because that&#8217;s a violation of the terms of service. Say goodbye to developer-only mode if you want to use test accounts.</p>
</li>
</ol>
<p>In short, these Facebook application test accounts are a waste of time, and don&#8217;t bother using them until Facebook provides some additional, unique incentive (like debug messages) to use them.</p>
<p><!--adsense#adsense_black_bfb--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/you-know-these-facebook-test-accounts-kind-of-suck/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>More Facebook Application Development Tips</title>
		<link>http://www.marketing-ninja.com/facebook-app/more-facebook-application-development-tips/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/more-facebook-application-development-tips/#comments</comments>
		<pubDate>Wed, 10 Oct 2007 06:01:18 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=214</guid>
		<description><![CDATA[
It&#8217;s that time again&#8230; I&#8217;m hard at work on my Facebook application, which I&#8217;m not going to discuss the particulars of until I release it, and I&#8217;ve got a fresh batch of Facebook application development tips, both from myself and around the blogosphere.


When making service calls in Facebook.NET, leave the &#8220;field&#8221; specification null - I [...]]]></description>
			<content:encoded><![CDATA[<p><!--adsense#programmer--><br />
It&#8217;s that time again&#8230; I&#8217;m hard at work on my Facebook application, which I&#8217;m not going to discuss the particulars of until I release it, and I&#8217;ve got a fresh batch of Facebook application development tips, both from myself and around the blogosphere.</p>
<ol>
<li>
<p><strong>When making service calls in Facebook.NET, leave the &#8220;field&#8221; specification null</strong> - I was working on building a server-side control for creating a user &#8220;Baseball card&#8221; for one of my pages and I needed to download just the user&#8217;s full name and the url to their square profile image but I kept running into the following two problems:</p>
<ul>
<li>Agonizingly slow query times and</li>
<li>The <em>User</em> object returned by the UserService was null, even though I had specified the field values correctly.</li>
</ul>
<p>However when I changed the field value to null, like how Nikhil himself did in his <a href="http://www.nikhilk.net/FacebookNET.aspx">Facebook.NET example</a>, specifically where he called</p>
<p><code>&lt;script runat="server"&gt;<br />
private void Page_Load() {<br />
    ArrayList ids = ...; // User IDs populated from ids posted by the multi-friend-input element<br />
    string fbml = ...;   // Build a greeting to place on the user's profile</p>
<p>    // Use the Facebook profile.setFBML API to update the user's profile<br />
    fbApp.Service.Profile.SetFbml(fbml, null);<br />
}<br />
&lt;/script&gt;</code><br />
Here&#8217;s an image illustrating where I placed a null value for my specific circumstance:</p>
<p><img src='http://www.ajaxninja.com/wp-content/uploads/2007/10/null_field_value.gif' alt='Null Field in a Facebook.NET Service Call' title="More Facebook Application Development Tips" /></p>
<p>Now are there some performance costs for not narrowing down the fields? Yes, but they&#8217;re negligible if you ask me. </p>
<blockquote><p>The greatest amount of overhead in communicating with the Facebook API for a single user&#8217;s profile is making a round trip to Facebook&#8217;s servers, not the size of the record returned.</p></blockquote>
<p><em>If there&#8217;s some fix that allows me to limit my input using field specifications in Facebook.NET services then I&#8217;ll run it in a new article.</em>
</li>
<li>
<p><strong>Get a Facebook Application Test Account</strong> - On October 3rd Facebook announced that developers would be able to <a href="http://developers.facebook.com/news.php?blog=1&#038;story=35">convert accounts into Facebook Application Test accounts</a>. I know one of the issues that I dealt with when I first got started developing my application was constantly deleting items from my news feed that my application produced (until I figured out how to disable it!)</p>
<p>Having a test account makes the issues of hiding testing content from your everyday friends a non-issue, so go ahead and <a href="http://www.facebook.com/developers/become_test_account.php">make one</a>.</p>
<blockquote><p>You should probably create a new, normal Facebook account first before you try to convert an existing Facebook account into a testing account, because interacting with normal users via a test account is against the terms of service and will result in account termination.</p></blockquote>
</li>
<li>
<p><a href="http://www.matthuggins.com/improve-reponse-time-with-facebook-dialogs-up-to-99/"><strong>Improve Response Time with Facebook Modal Dialogs by 99%</strong></a> - Although this developer is making his application using PHP, his problem of slow modal dialog is solved by using FBJS (Facebook JavaScript.) So take note: don&#8217;t try to reinvent the wheel; use some of the tools provided by Facebook&#8217;s environment.</p>
</li>
<li>
<p><strong>Experiment with Facebook JavaScript (FBJS)</strong> - I found an article when I was perusing Technorati the other day about how one developer built an <a href="http://coding.collinchung.com/2007/09/how-i-created-facebook-application-with.html">entire dynamic application using only FBJS</a> and I was astounded. As it turns out the application <a href="http://vanderbilt.facebook.com/topic.php?uid=11964855225&#038;topic=3021">hit some major problems down</a> the stretch but regardless the concept is cool. FBJS merits some experimentation on our parts as developers. Don&#8217;t just slap it in there for the sake of slapping it in there, though. There are some use cases, like the one I just mentioned about modal dialog, where FBJS can improve performance; we should look for and publish more cases.</p>
</li>
<li>
<p><strong>Create &#8220;Debugging&#8221; and &#8220;Live&#8221; Versions of your Application</strong> - The age-old software engineering concept of versioning rears its head. I was reading through <a href="http://blog.geekdaily.org/2007/10/live-blog-gra-1.html">some of the notes</a> from <a href="http://500hats.typepad.com/">Dave McClure</a>&#8217;s <a href="http://graphingsocial.com/">Graphing Social Patterns</a> conference and I noticed that someone had mentioned this very idea. The idea of maintaining a development version and a live version seems obvious but in case it&#8217;s not here&#8217;s why you should do it:</p>
<ul>
<li>Making live changes to an application that is serving potentially millions of Facebook users at any given time is a terrible, terrible idea.</li>
<li>If something goes wrong with your changes or modifications to your application and a ton of your users see that crappy Facebook application error page, how are you going to be able to roll back to a &#8220;stable&#8221; version if you just uploaded over the only other copy? Whoops.</li>
<li>Facebook users are very fickle and <a href="http://www.ajaxninja.com/?p=88">do not tolerate bad applications</a>. You can be sure that you&#8217;re going to lose users if all of your users encounter errors for a duration of time while you attempt to repair the application.</li>
<li>Performing changes on a debug or development version of your Facebook application will prevent these nightmares from occurring.</li>
</ul>
<p>So there you have it.
</li>
</ol>
<p>That will do it! If anyone has some tips they&#8217;d like to submit or some questions, please leave them in the comments below or use <a href="http://www.ajaxninja.com/?page_id=186">AjaxNinja&#8217;s contact form</a> to mail me.</p>
<p><!--adsense#Chikitia_shopcloud_header--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/more-facebook-application-development-tips/feed/</wfw:commentRss>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>5 Facebook.NET Development Tips</title>
		<link>http://www.marketing-ninja.com/old-stuff/5-facebooknet-development-tips/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/5-facebooknet-development-tips/#comments</comments>
		<pubDate>Mon, 01 Oct 2007 06:57:50 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=194</guid>
		<description><![CDATA[
It&#8217;s about time for an update on Facebook Application with ASP.NET, using Nikhil Kothari&#8217;s Facebook API wrapper for ASP.NET, Facebook.NET. If you want to read about why I&#8217;m using Facebook.NET instead of the Facebook Control Toolkit then click here.
I&#8217;ve spent a lot of time developing my Facebook application this weekend and I have a few [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg" alt="Facebook Logo" title="5 Facebook.NET Development Tips" /></p>
<p>It&#8217;s about time for an update on Facebook Application with ASP.NET, using <a href="http://www.nikhilk.net/FacebookNET.aspx">Nikhil Kothari&#8217;s Facebook API wrapper</a> for ASP.NET, Facebook.NET. If you want to read about why I&#8217;m using Facebook.NET instead of the Facebook Control Toolkit then <a href="http://www.ajaxninja.com/?p=131">click here</a>.</p>
<p>I&#8217;ve spent a lot of time developing my Facebook application this weekend and I have a few additional pointers that I&#8217;d like to throw out for any Facebook.NET developers looking to get started:</p>
<ol>
<li><strong>Use <a href="http://www.stevetrefethen.com/blog/VSNETStarterKitForNikhilKotharisFacebookNET.aspx">Steve Trefethen&#8217;s Visual Studio.NET starter kit for Facebook.NET</a></strong> - This starter kit is a handy package for jump starting a Facebook.NET application from scratch. I&#8217;ve written most of my Facebook application using Steve&#8217;s starter kit as a foundation (I ditched my botched FBML attempt and re-did the entire UI as an iframe.)</li>
<li><strong>Develop and debug your application as an &lt;iframe&gt; application</strong> - Take it from me, developing an FBML application is a <em>pain in the ass</em> for the following reasons:
<ul>
<li>FBML is very strict</li>
<li>Your FBML applications have to be run off of a server that Facebook can connect to, so a lot of your localhost debugging options disappear if you are behind a firewall like me.</li>
<li>FBML obfuscates any HTTP error messages, thus it can be very hard to track down and locate error messages when something goes wrong. I actually developed a great solution to this problem but still it was just easier to switch to an iframe.</li>
<li>Facebook&#8217;s Stylesheets can mess with your graphical elements a lot when you develop with FBML; using an iframe gives a clean slate (but you also have to try and then create your own styles that mesh well with Facebook!).</li>
<li>You can always develop and test the core of your application as an iframe and then embed it into an FBML wrapper later as an &lt;fb:iframe /&gt; element.</li>
</ul>
<p>I could go on all day about how much easier it is to work with iframes than FBML, and I may even write an entire post about it, but if you need just one reason, then it&#8217;s this: <em>you can debug on your localhost effortlessly with iframes, and not at all with FBML</em>.</li>
<li>
<p><strong>Use strongly-typed references to Master Pages in all of your .aspx files</strong> - In my <a href="http://www.ajaxninja.com/?p=191">10 Hot ASP.NET Tips and Tricks for the week of 9/28/2007</a> article I mentioned an article on master pages. In the subsequent <a href="http://quickstarts.asp.net/QuickStartv20/util/srcview.aspx?path=~/aspnet/samples/masterpages/codeaccess.src">code sample for the article</a> I linked to you can see where the author uses strongly-typed master page references to access controls on the master page via the .aspx pages. If you use Steven Trefethen&#8217;s starter kit then you need to implement some sort of strongly-typed reference in order to access the Facebook Application control which will then give you access to the Facebook Application service. All of my .aspx pages connect to Facebook via the master page&#8217;s control, and it saves on a lot of code duplication.</p>
</li>
<li>
<p><strong>Use &lt;fb:FacebookHyperLink&gt; extensively</strong> - One of the problems I had with my &lt;iframe&gt; approach was that my ASP.NET links would all point to my localhost url rather than translate correctly to Facebook&#8217;s url.</p>
<p>For instance if my application&#8217;s  home page were hosted at http://localhost/default.aspx and I wanted to go to my &#8220;invite friends&#8221; page, invite.aspx, clicking on a link that uses traditional ASP.NET relative-architecture (~/invite.aspx) would land me on http://localhost/invite.aspx, but where I <strong>really</strong> want to go is to Facebook&#8217;s translated address <strong>http://apps.facebook.com/myapp/invite.aspx</strong>.</p>
<p>&lt;fb:FacebookHyperLink&gt; takes care of this translation for you automatically, and it even adds the correct <strong>target</strong> property so you can navigate properly via &lt;iframe&gt;. This will save you from a lot of headaches.</p>
</li>
<li>
<p><strong>Use the <a href="http://developers.facebook.com/tools.php?fbml">FBML Test Console</a> </strong>- If your application sets a box on a user&#8217;s profile page, which requires FBML, then you need to make sure you thoroughly test your Facebook application&#8217;s FBML output using Facebook&#8217;s <a href="http://developers.facebook.com/tools.php?fbml">FBML test console</a>. You will not be able to test FBML rendering on your local machine as there are no desktop tools available for FBML. In addition Facebook changes the FBML standards frequently so even if there was a tool available it would become out of date in relatively short order.</p>
</li>
</ol>
<p>I&#8217;ll have some more tips and some code samples available this week as my development continues. I hope you find these helpful.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/5-facebooknet-development-tips/feed/</wfw:commentRss>
	<slash:comments>12</slash:comments>
	</item>
		<item>
		<title>A Much Better Approach to Facebook Application Monetization</title>
		<link>http://www.marketing-ninja.com/facebook-app/a-much-better-approach-to-facebook-application-monetization/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/a-much-better-approach-to-facebook-application-monetization/#comments</comments>
		<pubDate>Thu, 06 Sep 2007 07:14:11 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=144</guid>
		<description><![CDATA[
I had the pleasure of attending the Facebook Application Developer&#8217;s Garage in San Diego, California on August 23rd. It was hosted by Rodney Rumford of FaceReviews at Microsoft&#8217;s local office space in San Diego.
For a brief bit of time we talked with one of the main F8 designers whose name I forget; I bluntly asked [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg" alt="Facebook Logo" title="A Much Better Approach to Facebook Application Monetization" /></p>
<p>I had the pleasure of attending the Facebook Application Developer&#8217;s Garage in San Diego, California on August 23rd. It was hosted by Rodney Rumford of <a href="http://www.facereviews.com/">FaceReviews</a> at Microsoft&#8217;s local office space in San Diego.</p>
<p>For a brief bit of time we talked with one of the main F8 designers whose name I forget; I bluntly asked him via Skype why ASP.NET wasn&#8217;t supported in Facebook&#8217;s <em>Thrift</em> release and the answer was, plainly, that Facebook&#8217;s internal development team is committed to open source and has no experience with it (noobs).</p>
<p>The big thing that the entrepreneurs and developers wanted to discuss was how to properly monetize a Facebook application. One of the most popular posts on AjaxNinja, as of writing this, is my August entry on <a href="http://www.ajaxninja.com/?p=86"><em>The Challenges of Facebook Application Monetization</em></a>, which I recommend you read.</p>
<p>I lead the panel on Facebook Application Monetization and I came away with a lot of great ideas and a lot of feedback on bad ones.</p>
<p><strong>First, the bad news</strong>:</p>
<ul>
<li>Contextual ads are an utter failure</li>
<li>Getting your application noticed has become increasingly difficult; active marketing campaigns have to be undertaken in order to promote a Face book Application; adding it to the directory simply is not enough anymore.</li>
<li>Simply trying to get as many users as possible and then slapping some AdSense garbage on the canvas page will not work, either.</li>
</ul>
<p>Basically, the &#8220;rock star engineer&#8221; approach of &#8220;get millions of users then figure out how to make money&#8221; will prove worthless in 99.9% of all Facebook applications, even popular ones.</p>
<p>You can be the fortunate recipient of a lightning strike (YouTube is the best example of a lightning strike) and get bought out by some monalithic corporation wtih deep pockets, or you can stop doing the same stupid things that all &#8220;rock star engineers&#8221; do and come up with a business plan from the start.</p>
<p>The idea of leveraging contextual ads is foolish; for one thing, you can only get ads like AdSense to work on an &lt;fbml:iframe&gt; built within the canvas page, and unless you have an application like <em>What I Did Today</em> where all of the updates occur on the canvas page, your users will <strong>rarely</strong> see the canvas page.</p>
<p><strong>Don&#8217;t leverage millions of penniless students. Target niches that are willing and able to pay.</strong></p>
<p>In the meeting there were a handful of business developers and executives, people who really understand the business end of running a company. However, the majority of people were developers like me; the business developers shone the light of truth on the entire Facebook Application Monetization Dilemma in a way that was so profound that I was literally mad at myself for not realizing it.</p>
<p>I forget the gentleman&#8217;s name, but here is my paraphrase of the sheer brilliance he shared with us foolish developers:</p>
<blockquote><p>You guys are all worried about trying to grab up as many users as possible; you&#8217;re all worried about just getting huge numbers on your Facebook Application summary pages.</p>
<p>What do all of those users do for you if all of them are part of a demographic that does not spend money, like college and high school students, who constitute by far and large the most sizable portion of Facebook&#8217;s user base?</p>
<p>Instead of chasing after a bunch of students, why don&#8217;t you tailor an application to a niche within Facebook that has deep pockets, that can and will spend money?</p></blockquote>
<p>I was literally mad at myself for not having thought this first; like many young developers and entrepreneurs, I got sucked into the &#8220;gold fever&#8221; prospect of staking a claim with a killer Facebook application without any regard to who was going to use it and whether or not they would spend money!</p>
<p>So the moral of the story is, <em>build your applications with a money-capable niche in mind</em>, and <em>try to serve their economic interests</em>.</p>
<p>The &#8220;deep pockets&#8221; you target don&#8217;t have to be Facebook users; they can be companies and organization with an interest in using your application as a promotional tool.</p>
<p><strong>Use your application user base like marketing real-estate</strong></p>
<p>The big Facebook Application networks like Rockyou and Slide use &#8220;Facebook Application Readership Real-Estate&#8221; to effectively market their own Facebook Applications, but if you develop one successful application, no matter how stupid it is, there is a good chance you can leverage your real estate to help promote someone else&#8217;s applications for profit.</p>
<p>This is one instance where leveraging makes sense, simply because cross-promoting another application of perhaps a similar nature is much more targeted than AdSense. There&#8217;s a good shot that if a user really likes an application that they&#8217;d be willing to at least try adding some of the other ones recommended by that developer; call it brand trust or loyalty.</p>
<p>One of the things Rodney emphasized after the event was the notion of <strong>networks of applications</strong> competing for real estate with each other; the idea of a few major players buying out applications for the sake of readership real-estate adds yet another interesting dimension to the entire Facebook application puzzle.</p>
<p><strong>A word of thanks to the Facebook Application Developer&#8217;s Garage: San Diego participants</strong></p>
<p>I&#8217;d like to extend a word of thanks to Gary Gil of <a href="http://www.podclass.com/">Podclass</a>, Woody Pewitt of Microsoft (who gave a great presentation on <a href="http://www.ajaxninja.com/?p=131">Facebook.NET</a>), Alex Shah of <a href="http://www.facedouble.com/">FaceDouble</a>, Ryan Denny of BYU, David Levine of the Harvard Business School, Rodney Rumford of <a href="http://www.facereviews.com/">FaceReviews</a>, and anyone else I met whose name I forgot. I learned a lot from all of you.</p>
<p>If I missed any of you, you <a href="http://www.facebook.com/profile.php?id=570583224" title="Add AjaxNinja to Facebook" target="_blank">should add me on Facebook</a>.</p>
<p><!--adsense--></p>
<p><strong>Coming Soon:</strong></p>
<p>I finally get my proper ASP.NET work station returned to me in working order tomorrow and I will resume work on my Facebook application, which I am going to publish the full source code to and I will explain the monetization model behind it, should it work worth a damn. Expect results within two months.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/a-much-better-approach-to-facebook-application-monetization/feed/</wfw:commentRss>
	<slash:comments>9</slash:comments>
	</item>
		<item>
		<title>Why I&#8217;m switching to Facebook.NET from the Facebook Developer&#8217;s Toolkit</title>
		<link>http://www.marketing-ninja.com/old-stuff/why-im-switching-to-facebooknet-from-the-facebook-developers-toolit/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/why-im-switching-to-facebooknet-from-the-facebook-developers-toolit/#comments</comments>
		<pubDate>Sun, 26 Aug 2007 00:20:41 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=131</guid>
		<description><![CDATA[
So I attended the Facebook Garage - San Diego meeting on Thursday night and I was incredibly inspired by the panel there. I led a panel on Facebook Application Monetization, which I have written about on this blog before,  and I learned a lot from some of the other developers and entrepreneurs present at [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebooklogo.jpg" alt="Facebook Logo" title="Why Im switching to Facebook.NET from the Facebook Developers Toolkit" /></p>
<p>So I attended the Facebook Garage - San Diego meeting on Thursday night and I was incredibly inspired by the panel there. I led a panel on <a href="http://www.ajaxninja.com/?p=86">Facebook Application Monetization, which I have written about on this blog before</a>,  and I learned <strong>a lot</strong> from some of the other developers and entrepreneurs present at the event.  I will be writing about that shortly.</p>
<p>After the event on Thursday I was utterly inspired to get off my duff and complete my Facebook Application. My application is ridiculously simple and I have a monetization model for it, but for the most part I&#8217;m writing the application because it is something that I find amusing and I&#8217;d use and develop it even if no one else did.</p>
<p>Today I want to vent my frustration with the Facebook Developer&#8217;s Toolkit, the Microsoft-endorsed .NET Facebook development platform built by Clarity Consulting and why I&#8217;m switching to <a href="http://www.nikhilk.net/FacebookNET.aspx">Nikhil Kothari&#8217;s Facebook.NET</a>. I wrote about both the <a href="http://www.ajaxninja.com/?p=23">Facebook Developer&#8217;s Toolkit and Facebook.NET in a previous entry where I listed all of the available .NET SDK&#8217;s for Facebook application development</a>.</p>
<p><strong>The Needs of My Application</strong></p>
<p>Before I get into how the Facebook Developer&#8217;s Toolkit failed to fulfill my needs, let me run down what my needs are in the first place:</p>
<ul>
<li><em>Communication with a SQL back-end</em> - like 99% of applications out there, I need some place to store my data. Currently I have an AWESOME data layer built using the methods I described in one of my recent entries on <a href="http://www.ajaxninja.com/?p=90">how to design an awesome data layer in ASP.NET</a>.</li>
<li><em>Very small data footprint</em> - To give you an idea of just how small the amount of data I need is, my SQL database consists of only two tables.</li>
<li><em>Very simple interface</em> - My interface consists of a single form accessible via the canvas page, and if I feel like trying the fake-AJAX stuff that Facebook is building in, maybe I&#8217;ll implement it on the profile page too.</li>
<li><em>Sets FBML on the Profile</em> - Yes, this application needs to be able to publish to the Facebook user&#8217;s profile page area.</li>
<li><em>Publishes items to the News Feed</em></li>
<li><em>Uses FBML instead of iFrames</em> - I have a VERY simple interface and the amount of time it would take me to develop an iframe equivalent for some of the features that FBML offers made the choice for me; I need to use FBML.</li>
</ul>
<p>Now I&#8217;m not doing anything spectacular in terms of the technological demands of my Facebook application, but the Facebook Developer&#8217;s Toolkit made it hard for me in the first place.</p>
<p><strong>How Facebook Developer&#8217;s Toolkit made things Difficult</strong></p>
<p>Before I begin, I need to tip my hat to AjaxNinja reader vjeran, who warned me in an email that the Facebook Developer&#8217;s Toolkit was full of bugs and not to use it. If only I had listened.</p>
<ul>
<li><em>It&#8217;s not clear what the CanvasFBML class actually does</em> - One problem I ran into right away when I started testing on my live website was that I ran into a ton of <strong>incorrect signature </strong>errors on my post-application add page. There were no other additional details other than that. When I investigated into the issue on the discussion page for the Facebook Developer&#8217;s Toolkit, I came across the first piece of bad news, which is that the <a href="http://www.codeplex.com/FacebookToolkit/WorkItem/View.aspx?WorkItemId=2325">subclassed pages do not connect to Facebook automatically</a>. Why in the hell am I giving the subclass members access to my API key and Secret key then? For fun? In short, I have no idea what the base class does, it&#8217;s not well documented, and if it doesn&#8217;t handle Facebook REST authentication under the hood, then there is no point in me having it. QED.</li>
<li><em>There is no method-specific documentation</em> - The title pretty much says it all. There just isn&#8217;t any documentation for most of the methods, even <em>IntelliSense</em> documentation. I had a little adventure figuring out how to set the user&#8217;s profile FBML using the Facebook Developer Toolkit, and even after I found what I think is the correct method (setFBML(string)), I&#8217;m still not sure if it works because I can&#8217;t get my FBML application to properly authorize with Facebook still.</li>
<li><em>Basically, forget developing FBML apps with the Facebook Developer&#8217;s Toolkit</em> - I developed a small iframe application a while ago over at the AjaxNinja labs, and it worked fine as an iframe app. However, developing a full-fledged FBML application is a nightmare that I wouldn&#8217;t wish upon my worst enemies. A lot of it is guess work, desperate Google searching for answers, and translating PHP examples into ASP.NET.</li>
</ul>
<p><strong>Why I&#8217;m switching to Facebook.NET</strong></p>
<p>Facebook.NET has even less documentation than the Facebook Developer&#8217;s Toolkit. However, it does have a VERY good FBML example, which the Facebook Developer&#8217;s Toolkit does not have. I think the Facebook.NET platform is abstract enough that I could flexibly design my own FBML application intuitively, which I was unable to with the Facebook Developer&#8217;s Toolkit.</p>
<p>If I ever get this application finished (I was hoping to have it done already), I will be posting the full source code online and I will be documenting some of my own tips and tricks on how to do Facebook Application development properly in ASP.NET.</p>
<p><!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/why-im-switching-to-facebooknet-from-the-facebook-developers-toolit/feed/</wfw:commentRss>
	<slash:comments>25</slash:comments>
	</item>
		<item>
		<title>Getting to the Roots of Facebook Application Fatigue</title>
		<link>http://www.marketing-ninja.com/facebook-app/getting-to-the-roots-of-facebook-application-fatigue/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/getting-to-the-roots-of-facebook-application-fatigue/#comments</comments>
		<pubDate>Thu, 16 Aug 2007 04:07:48 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=88</guid>
		<description><![CDATA[
There is a new problem on the horizon for budding Facebook Application Developers like myself: the average Facebook user hates us and wants us to cease and desist.
In a previous article on Facebook Application Monetization I mentioned that one of the challenges facing monetized Facebook applications is the phenomenon of &#8220;Facebook Application Fatigue.&#8221; To recap:
Facebook [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/08/facebookfatigue.png" alt="Facebook Fatigue 1" title="Getting to the Roots of Facebook Application Fatigue" /></p>
<p>There is a new problem on the horizon for budding Facebook Application Developers like myself: the average Facebook user hates us and wants us to cease and desist.<br />
In a previous <a href="http://www.ajaxninja.com/?p=86" title="AjaxNinja | Monetizing Facebook Applications" target="_blank">article on Facebook Application Monetization</a> I mentioned that one of the challenges facing monetized Facebook applications is the phenomenon of &#8220;Facebook Application Fatigue.&#8221; To recap:</p>
<blockquote><p>Facebook users want a limited number of apps visible on their profile page. This means that your application will not only be competing with applications within similar domains, but your application will also be competing for precious real-estate space on every individual user’s Facebook profile page.</p></blockquote>
<p><span id="more-88"></span><br />
<strong>What is Facebook Application Fatigue?</strong></p>
<p><em>Short Version</em>: Most Facebook applications are useless clutter developed by people who have no idea what Facebook is about. The users themselves recognize this and have grown to resent having to dig through a mess of visual diarrhea just to find their friends&#8217; walls.</p>
<p><em>Long Version</em>: 99% of Facebook applications have one or more of the following attributes:</p>
<ul>
<li>Aesthetically unpleasing</li>
<li>Useless gimmick</li>
<li>Provides content totally unrelated to Facebook&#8217;s purpose as a communication tool</li>
<li>Does not work as intended</li>
<li>Difficult or awkward to use</li>
<li>Profoundly stupid</li>
<li>Identical to another, already popular application</li>
</ul>
<p>You can come to the conclusion that given that there are 3000 facebook applications out there then it has become a bit tiresome for Facebook users to find decent applications in the midst of so many bad ones.</p>
<p>Facebook Application Fatigue is not &#8220;fatigue&#8221; in the sense that Facebook users are <em>exhausted</em> by the saturation of Facebook applications; they aren&#8217;t tired of <em>using</em> Facebook applications at all!</p>
<blockquote><p> Facebook Application Fatigue is a prejudicial reluctance against trying new applications, because users are protective of their profile real-estate and their time.</p></blockquote>
<p>To summarize, due to the large amount of Facebook Applications (I&#8217;d almost call it saturation), users are now demonstrating and increased amount of selectiveness when it comes to choosing which applications occupy their precious profile space.</p>
<p>Many of the hardcore Facebook users played around with several applications shortly after the onset of the F8 platform release. That was at the end of May; here in August we  must acknowledge that those users have grown accustomed to a small subset of applications available to all users, and the exploratory period has come to an end.</p>
<p>Most long-time Facebook users are not going to just poke around the application directory and simply add new applications for the sake of adding them anymore; that time has come and gone. Facebook is all about communicating an image of yourself to your peers, and unless someone creates a truly captivating, innovative, or better F8 application, no one is going to adopt it on a whim.<br />
<strong>The Causes of Facebook Application Fatigue</strong></p>
<ul>
<li><strong>Chicken and the Egg Problem</strong> - In economics a networked service is defined as<br />
<blockquote><p>any service which increases in value with each additional consumer or user of the network.</p></blockquote>
<p>Any networked service is going to suffer from the initial chicken and the egg problem: if we establish the network, how in the hell are we going to get enough users to use it to make it valuable to most users? If you can come up with an easy answer to that question then you&#8217;re going to be a wealthy person one day. How does this relate to Facebook applications? In my <a href="http://www.ajaxninja.com/?p=86" title="Monetizing Facebook Applications" target="_blank">previous post on monetizing Facebook applications</a> I broke down all successful Facebook applications into three categories: peer-to-peer communication services, interest publication services, and peer-to-peer relationship services.</p>
<ul>
<li><strong>Peer to Peer Communication Applications</strong> - This class of applications suffers the most from the chicken and the egg problem; for instance, in order to use the <em>Graffiti</em> application to draw on someone else&#8217;s wall, both you and that person need to have the application installed. Competing with a well-established application in this area is very difficult; almost 7 million users have <em>Graffiti</em> installed, and thus that application is significantly more valuable than any other applications that allow you to draw on someone else&#8217;s wall, even if those other applications are better or easier to use.</li>
<li><strong>Peer to Peer Relationship Applications</strong> - These applications still suffer from the Chicken and the Egg problem but not in all instances; for instance, the application <em>Top Friends</em> does not require that your peers use it, because <em>Top Friends</em> establishes a relationship via the expression of user preferences as to which friends appear first on the user&#8217;s profile; it does not require two-party consent. However, the <em>Likeness</em> application, which compares how similar you are to other users of the application, very much suffers from the C&amp;E problem as both the comparer and the compared are required to have the application installed. <strong>Bottom Line: If both parties have to have to application installed, you have a C&amp;E problem.</strong></li>
<li><strong>Interest Publication Services</strong> - Since these applications are merely a publishing service for making readers of your Facebook profile explicitly aware of your preferences in regard to books, movies, interests, music, or activities they by definition do not require multiple users in order to have value. However, if you developed an application in which you <u>compared users with similiar interests</u>, you would then run into the C&amp;E problem. The bottom line holds true.</li>
</ul>
<p>So how does the C&amp;E problem rear its head for Facebook users? If the application requires two parties to use it in order for it to achieve something of value, then users will naturally gravitate towards the service that most of their friends use. This makes it very challenging for new entrants into the domains covered by services that suffer from the C&amp;E problem.</li>
<li><strong>Profile Clutter Problem</strong> - If every user went and added hundreds of applications <a href="http://mashable.com/2007/07/28/facebook-stress-test/" target="_blank">like how they did on Mashable</a> it would be an utter disaster for Facebook. The profiles would be so bloated and visually offensive that no one would be able to read it and discern any useful information about his or her Facebook friends. Although the Mashable example is extreme the concept holds true: <u>users do not want their profiles completely overloaded with obnoxious amounts of garbage</u>. Thus Facebook users are going to exercise cautious discretion as to what applications do or do not get added to their profile real-estate; many users have already made those decisions and are satisfied with their current handful of applications.</li>
<li><strong>Over-Exposed Application Invitation Problem</strong> - Invitations to try out new applications are incredibly over-exposed; rather than being viewed as an attempt to experiment with some brand-new state of the art technology, they are viewed as annoying intrusions into the average user&#8217;s Facebook experience. I have yet to accept an invitation to try a new application, because if I tried all of the invitations I have ever received, I wouldn&#8217;t be able to do anything on Facebook other than try out new applications!</li>
<li><strong>Weary of Fads</strong> <strong>and Gimmicks</strong> - Applications such as <em>Pirates</em>, <em>Ninjas</em>, and other similar ilk are viewed cautiously by some socially savvy users and professionals as they do not want to have a paper trail to link them to specific fads that may be viewed skeptically by some of their friends. If you think this is true, go ahead and sign up for <em>Pirates</em> and try inviting any of your Professors to the application; I guarantee you the vast majority of them, even the most active Professors on Facebook, will not add them for sake of not being taken by their peers seriously. Facebook can be used as a powerful professional tool, and many applications such as <em>Pirates</em> diminish Facebook&#8217;s value as a tool, thus many users who might even find the Pirates vs. Ninjas fad amusing will not install them. Many application designers neglect the fact their applications are a direct reflection of the users who install them.</li>
<li><strong>Protective of Facebook Time</strong> - Many Facebook users are guilty in their own eyes of spending &#8220;too much&#8221; time poking around on Facebook; this is especially true of college and high school students. Facebook users are aware of their wasted time and some of them are loath to try new applications simply because they view it as another time sink, but this time it&#8217;s an opt-out time sink. Many users will simply choose not to install an application simply because they do not want to spend any more time on Facebook than they feel they have to already.</li>
</ul>
<p>In the near future I will be starting some discussion ways to design application that work around Facebook Application Fatigue. In the mean time, please share your throughts!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/getting-to-the-roots-of-facebook-application-fatigue/feed/</wfw:commentRss>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>Add AjaxNinja to Your Facebook Friends!</title>
		<link>http://www.marketing-ninja.com/facebook-app/add-ajaxninja-to-your-facebook-friends/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/add-ajaxninja-to-your-facebook-friends/#comments</comments>
		<pubDate>Mon, 13 Aug 2007 17:25:51 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Social Media]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=87</guid>
		<description><![CDATA[In addition to being available for friending on StumbleUpon and Digg, I am now available via Facebook. If you&#8217;ve enjoyed what you have read here, I would ask that you consider adding me on any of those services  
Also, for your reading pleasure, check out the Facebook Application Extreme Stress Test from Mashable.
]]></description>
			<content:encoded><![CDATA[<p>In addition to being available for friending on <a href="http://aaronontheweb.stumbleupon.com/" target="_blank">StumbleUpon</a> and <a href="http://www.digg.com/users/Aaronontheweb/">Digg</a>, I am now available via <a href="http://www.facebook.com/profile.php?id=570583224" target="_blank">Facebook</a>. If you&#8217;ve enjoyed what you have read here, I would ask that you consider adding me on any of those services <img src='http://www.marketing-ninja.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' title="Add AjaxNinja to Your Facebook Friends!" /> </p>
<p>Also, for your reading pleasure, check out the <a href="http://mashable.com/2007/07/28/facebook-stress-test/" target="_blank">Facebook Application Extreme Stress Test</a> from Mashable.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/add-ajaxninja-to-your-facebook-friends/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>Monetizing Facebook Applications</title>
		<link>http://www.marketing-ninja.com/facebook-app/monetizing-facebook-applications/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/monetizing-facebook-applications/#comments</comments>
		<pubDate>Sun, 12 Aug 2007 20:20:36 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=86</guid>
		<description><![CDATA[As of writing this entry there are nearly 3000 polished Facebook applications developed for the F8 Facebook developer&#8217;s platform, but only a very small number of those applications were developed with the intent of earning revenue.
The Challenges of Facebook Application Monetization

Contextual Advertising Does Not Work
Steve O&#8217;Hear, a social networks and Facebook blogger for ZDNet, brings [...]]]></description>
			<content:encoded><![CDATA[<p>As of writing this entry there are nearly 3000 polished Facebook applications developed for the F8 Facebook developer&#8217;s platform, but only a very small number of those applications were developed with the intent of earning revenue.</p>
<p><strong>The Challenges of Facebook Application Monetization</strong></p>
<ul>
<li><strong>Contextual Advertising Does Not Work</strong><br />
Steve O&#8217;Hear, a social networks and Facebook blogger for ZDNet, brings to light <a href="http://blogs.zdnet.com/social/?p=247" target="_blank">that Facebook suffers incredibly low click-through rates for advertising campaigns</a> (0.04% per 1.4 million impressions) thus ruling out the lazy-man&#8217;s monetizing option, contextual advertising campaigns like <a href="http://www.google.com/adsense/" title="Google Adsense" target="_blank">Google AdSense</a>.<span id="more-86"></span>As though abysmally low click-through rates weren&#8217;t enough to deter one from employing AdSense <a href="http://blogs.zdnet.com/social/?p=215" target="_blank">Jawad Shuaib the author of the most prominent monetized F8 application, &#8220;My Favorite Books,&#8221; writes</a>:</p>
<blockquote><p>Part of the reason is that Facebook does not allow developers to embed JavaScript within their code; hence making it difficult to enable Google Adsense for the content. Moreover, as is the case with MySpace, contextual advertising is not targeted enough to earn sizable revenues.</p></blockquote>
<p>I&#8217;ll be the first one to thank Facebook for sparing us from a barrage AdSense bulk on all of my friends&#8217; pages.</li>
<li><strong>Facebook Users are Suffering from &#8220;Facebook Application Fatigue&#8221;</strong><br />
When I began telling some of my fraternity brothers and friends that I was developing a Facebook application, the first thing I got was a long groan and something along the lines of &#8220;not another %^#@ing Facebook application!&#8221; Apparently, this is not just a phenomenon localized to Vanderbilt students; a handful of <a href="http://www.echoditto.com/node/1168" target="_blank">bloggers are reporting the very same frustrated sentiment</a>.Facebook users want a limited number of apps visible on their profile page. This means that your application will not only be competing with applications within similar domains, but your application will also be competing for precious real-estate space on every individual user&#8217;s Facebook profile page.I will be doing a post dedicated to the causes of &#8220;Facebook Application Fatigue&#8221; in the very near future.</li>
<li><strong>Large Number of Entrants</strong>There are nearly 3000 published applications available for Facebook users so it has become very difficult for great Facebook applications to get noticed. It is no longer just enough to simply &#8220;add&#8221; a Facebook application to the directory and wait for the users to come rolling in; you have to actively reach out to Facebook users and get them to adopt your application willingly.This is especially true given how long the wait delay is on the Facebook Application directory.In order to get users, you are going to have to make your application stand out above the competition. No one will adopt it simply by virtue of its existence.</li>
<li><strong>Most Facebook Applications Fail to Create Additional Value</strong> Facebook is not a &#8220;content&#8221; service so much as it is a &#8220;communication&#8221; service. People do not log-on onto Facebook to read RSS feeds, get the latest weather, look-up movie times, and such, as those services are not inherently conducive to Facebook&#8217;s function as a communication medium.Applications such as iLike (favorite songs, music videos), Graffiti (MS Paint tool for wall posts), and Video (upload home videos and tag your friends in them) are all popular examples of applications that are conform to Facebook&#8217;s original intent.The problem with most application designers is they view user-service interaction as &#8220;content&#8221; production. The fact of the matter is, Facebook is not user-service interaction, like how Google is, but it&#8217;s all user-user interaction with the service acting as a communication link. When a user lists his or her music or film preferences on Facebook, it is for the express purpose of communication those interests to his or her peers, not so random people on the Internet can look them up and say &#8220;Oh hey, I like Boondock Saints too!&#8221;</li>
</ul>
<p><strong>Designing a Facebook Application with Monetization in Mind</strong></p>
<ul>
<li><strong>Remember Facebook&#8217;s Ultimate Purpose - Communicate!</strong><br />
Avoid the traditional downward spiral that most Facebook application developers fall for - FACEBOOK IS NOT ABOUT CONTENT. It&#8217;s about communication. Here are some ways that you can design your application to perform a &#8220;communication&#8221; versus a &#8220;content&#8221; service:</p>
<ol>
<li><strong>Design your application to publish interests that currently are not served adequately by Facebook or other existing applications</strong>. <em>My Favorite Books</em> is a great example of such a service; it is essentially an upgrade to the existing &#8220;books&#8221; section on Facebook. <em>iLike</em> on the other hand publishes song and music video preferences, which weren&#8217;t available on Facebook at all prior to the F8 release.</li>
<li><strong>Design your application to create innovative forms of peer interaction that are not currently available to Facebook</strong>. <em>Graffiti</em> and <em>Honesty Box</em> are both new ways of communicating to your friends on Facebook. <em>Honesty Box</em> allows you send receive and send anonymous messages and <em>Graffiti</em> allows you to send and receive graphical messages; neither of these services were available before.</li>
<li><strong>Design your application to establish unique relationships with other Facebook users</strong>. <em>Top Friends</em> and <em>Greek Family Tree</em> are examples of popular applications used for establishing relationships between groups of users; while <em>Top Friends</em> publishes generic relationships, <em>Greek Family Tree</em> focuses on specific Greek organization hierarchies between older/young siblings.</li>
</ol>
</li>
<li><strong>Release a High Quality Application Tomorrow Versus a Medicore One Today</strong><br />
Facebook users are fickle. It comes with the territory of catering to college and high school students. Users pick up and dump Facebook applications all the time; just because <em>iLike</em> is the number one song and music video application today does not guarantee that it will be that way in three months. An application that is</p>
<ol>
<li>Easiest to use</li>
<li>Occupies the smallest amount of profile space</li>
<li>Provides distinctive communicative value</li>
<li>Is easiest to install and set up</li>
<li>Provides the highest quality of service</li>
</ol>
<p>will prevail over the competition so long as those points remain intact. So don&#8217;t rush your application for the sake of &#8220;being first.&#8221; Instead, take as much time as you need to &#8220;be the best.&#8221;</li>
<li><strong>For Interest Publication Services: Find Referral Services to Sell Related Products</strong><br />
The key to <em>My Favorite Books</em>&#8216; profitability is its incorporation of an Amazon.com referral system. If you&#8217;re browsing a friend&#8217;s Facebook profile with the application installed, you can follow a link to purchase any of the &#8220;favorited&#8221; books from Amazon.com, and in the process, earn the <em>My Favorite Books</em> developers a 4% commission on the sale.This is a very simple and easy model to follow. Just find a good referring service for your domain and use affiliate links on all of the interests.</li>
<li><strong>For Communication Innovations: Charge a Small Usage Fee or Subscription</strong><br />
This is the model that Facebook employs to for its <em>Gift</em> service; charge a $1 fee for a small graphic of a &#8220;gift&#8221; to appear on someone else&#8217;s page? Well if you have a million users give each someone one gift each, you have yourself a pile of cash.Facebook application developers should not shy away from charging people to use the service; if you charge a reasonably low rate (like $1 per gift), that will not deter people away from using it. If I were the developer of <em>Honesty Box</em>, I would have employed this from its inception. The notion that the entire Internet economy should be supported by AdSense and Amazon.com referral links is wrong. In addition by making your service exclusive to paying users, you will help keep your costs down.Make sure you incorporate a free demo to a number of users during your initial opening, or keep a free, limited version of your service around for the sake of enticing users to users to your subscription or free based service.</li>
<li><strong>Get Relevant Sponsors</strong><br />
If you run an application dedicated to sharing your favorite <em>Entourage</em> quotes or <em>Lost</em> theories, getting a sponsorship advertisements for either of those shows is a no brainer. Users who have that app would probably be interesting in clicking on an advertisement for either of those shows; the hard part is getting the ads in the first place!</li>
</ul>
<p>If you have any suggestions, please leave them here. I have more ideas on monetization ideas but they&#8217;re just so good that I need to keep them for myself :p. Stay tuned for when I release my own application in the upcoming months <img src='http://www.marketing-ninja.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' title="Monetizing Facebook Applications" /><br />
<!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/monetizing-facebook-applications/feed/</wfw:commentRss>
	<slash:comments>14</slash:comments>
	</item>
		<item>
		<title>Starting your First Facebook App: Demystifying Application Form Field by Field</title>
		<link>http://www.marketing-ninja.com/facebook-app/starting-your-first-facebook-app-demystifying-application-form-field-by-field/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/starting-your-first-facebook-app-demystifying-application-form-field-by-field/#comments</comments>
		<pubDate>Wed, 01 Aug 2007 03:35:23 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=55</guid>
		<description><![CDATA[Starting your first facebook application is frustrating from the get-go. After taking a few lumps I have decided to break the new application form down field by field to try and make it simple for you. The fields are done in the order that they appear.
Application Name: 

This is the name you want to give [...]]]></description>
			<content:encoded><![CDATA[<p>Starting your first facebook application is frustrating from the get-go. After taking a few lumps I have decided to break the <em>new application</em> form down <strong>field by field</strong> to try and make it simple for you. The fields are done in the order that they appear.</p>
<p><strong>Application Name: </strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_appname.gif" alt="Facebook Applicaiton Name" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>This is the name you want to give your application; I obviously chose to name mine &#8220;AjaxNinja Labs.&#8221; Your application name will appear everywhere, for instance, if you add a sidebar URL for your app, the name will appear under your list of applications like this:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_sidenav.gif" alt="Facebook Application Sidenav" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p style="text-align: center"><em>Facebook side navigation bar with my application (AjaxNinja Labs) at the bottom</em></p>
<p>In short, your application name is ubiquitous; it will appear EVERYWHERE your application can be found. Pretty straight forward.</p>
<p><span id="more-55"></span></p>
<p><strong>Support Email:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_support_email.gif" alt="Facebook App Support Email" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> This is your support email address for your application&#8230; Should absolutely be an address where you or one of the other developers can be contacted. <em>This is a required field, but for the sake of avoiding spam, I have blurred out my email address</em>.</p>
<p><strong>Callback URL</strong>:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_callback_url.gif" alt="Facebook Application Callback URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>This is where things start to get confusing; a <strong>callback URL</strong> is meant to be the root directory, <u><strong>WITH THE SLASH INCLUDED</strong></u>, of the content for your facebook application on your server. For my application, the root directory is that of my <a href="http://www.ajaxninja.com/lab/mobile/" title="AjaxNinja Labs" target="_blank">labs area</a>; this callback URL is crucially important as it is your end of the Facebook application service. If this URL is not provided correctly your application will not work.</p>
<p>Facebook call back URLs work essential like proxy servers, including caching. The reason for this? Obviously Facebook doesn&#8217;t want applications with crappy hosts diminishing the results for its users, so it caches FBML (Facebook Markup Language) output and checks periodically for updates. Here is a diagram of how Facebook proxying and call backs work:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/ajaxninja-how-a-facebook-callback-url-works.png" alt="AjaxNinja - How a Facebook Callback Works" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p><em>Note: I do not know how the Facebook caching algorithms work or how often they request updates from your source.</em></p>
<p><strong>Canvas Page URL:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_canvas_page_url.gif" alt="Facebook New Application form - Canvas Page URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>As you may have seen in the diagram above, the canvas page URL is simply the Facebook virtual directory pointing for the content in your application. This value can be totally arbitrary as long as the URL is available and 7 characters or longer.</p>
<p><strong>FBML or IFRAME:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_fbml_or_iframe.gif" alt="Facebook New Application form - FBML or Iframe" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> I strongly recommend using the <em>iframe</em> option, simply because it allows you to design a website under the hood that behaves and acts like a normal website. However, using a FBML markup file instead of a native .ASPX, .PHP, or .HTML file will allow you to use a lot more native tools for facebook and it will render faster. If you&#8217;re concerned about taking on major performance hits, FBML is the way to go. If you&#8217;re more interested in keeping things simple, stick to an iframe.</p>
<p><strong>Application Type:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_application_type.gif" alt="Facebook New Application form - Desktop Application or Website" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>This one is pretty simple; if you&#8217;re designing a desktop application that connects to Facebook for some operations, then check the <em>desktop</em> option. If you&#8217;re designing an application that can be run off of your website, then pick <em>website</em>.</p>
<p><strong>IP Addresses:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_ipaddresses.gif" alt="Facebook New Application form - IP Addresses" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you have some security concerns regarding your application and you want to whitelist all of the allowed IP addresses making service requests, you can enter those IP addresses here. Most applications do not use this feature, generally speaking.</p>
<p><strong>Can your application be added on Facebook:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_can_add.gif" alt="Facebook New Application form - Can add to profile button" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you want users to be able to add your application to their facebook account, then check the yes button. This means that users will be able to access the canvas page, add your application to their profiles,  and post news feed items regarding your application.</p>
<p><u><strong>POTENTIAL PIT FALL</strong></u>: If you are still in the development stage of your application, don&#8217;t check the <strong>&#8220;no&#8221;</strong> button because you want to prevent users from accessing your application, as this will also prevent you and any developers you are working with from testing the application as a user; check the <strong>&#8220;only developer&#8217;s may install application&#8221;</strong> checkbox further down the page to prevent normal users from tampering with your application in production.</p>
<p><strong>Terms of Service (TOS) URL:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_tosurl.gif" alt="Facebook New Application form - TOS URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>The terms of service URL is meant to be a link to a terms of service document hosted on <strong>your server</strong>; unless you&#8217;re trying to build a Facebook app where you can potentially run into some privacy issues, I&#8217;d recommend leaving this blank.</p>
<p><strong>Application Icon</strong>:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_icon.gif" alt="Facebook New Application form - Change Icon" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>First, <strong>every application should have an icon, period.</strong> Your icon will be shown alongside your <strong>application name</strong> in every instance the app name is displayed, so it&#8217;s important for establishing branding. <em>The icon dimensions are 16 by 16 pixels and it <strong>must</strong> in the GIF format.</em></p>
<p><strong>Post-Add URL</strong>:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_postadd_url.gif" alt="Facebook New Application form - Post-Add URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>This URL can be on your local hosting, and <strong>users are redirected from Facebook to here immediately after adding your application</strong>. I just goofed around a put a random link to one of my blog entries on there, but if you want to do something like send them to an instructions page, this is the place to do it.</p>
<p><strong>Application Description:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_addapplication.gif" alt="Application Desc" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>Self-explanatory. This is the description that appears next to your application on the &#8220;About Application XYZ&#8230;.&#8221; page.</p>
<p><strong>Post-Remove URL:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_post_remove_url.gif" alt="Facebook New Application form - Post Remove URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>Update from AjaxNinja Reader Harry:</p>
<blockquote><p>When a user selects to remove your application they are not sent to the ‘Post-Remove URL’ as they have removed the application and so will have no further contact with it. A POST request will be sent to this address in the background however containing the uid of the leaving user.</p></blockquote>
<p>Thanks, Harry for helping us clear up what the Post-Remove URL does!</p>
<p><strong>Default FBML:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_defaultfbml.gif" alt="Default FBML Form" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> This is the FBML that will be visible in the profile by default. <strong>Example:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_defaultfbml_profile.gif" alt="Default FBML in Profile" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> <strong>Default Profile Box Column:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_defaultcolumn.gif" alt="Default Facebook Profile Box Column" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>There are two columns on any Facebook profile page: the wide one on the right and the narrow one on the left. Users can drag and drop your application on their profile to either column, but if you want to specify a default column you can do it here. Here&#8217;s what they look like:</p>
<p><strong>Narrow Column:</strong></p>
<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_defaultfbml_profile.gif" alt="Default FBML in Profile" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p><strong>Wide Column:</strong></p>
<p><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_widecolumn.gif" alt="Facebook Wide Column" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p><strong>Developer&#8217;s Only Mode:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_no_noobs_allowed.gif" alt="Facebook New Application Form - No Noobs Allowed Button" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you don&#8217;t want any noobs (normal people) messing around with your application while you&#8217;re still in the process of developing and testing it, check this button.</p>
<p><strong>Side Nav URL:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_sidenav_url.gif" alt="Facebook New Application Form - Side Nav URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> This is an important one. If you want Facebook users who have installed your application to be able to access it via sidebar, you need to provide them with a URL so they can have a link on their sidebar. For many applications this link <strong><em>is</em></strong> the application&#8217;s primary entry point.</p>
<p><em>Nota Bene:</em> Notice how I have used an internal Facebook link here&#8230; this is how I get Facebook to actually implement my iframe within a Facebook page.</p>
<p><strong>Privacy URL</strong>:</p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_privacy_url1.gif" alt="FACEBOOK PRIVACY URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you have some custom privacy options that you&#8217;d like your users to be able to set, place a URL to that here. Again, it can be internal like my sidenav example or external.</p>
<p><strong>Help URL:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_help_url.gif" alt="Facebook New Application Form - Help URL" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you have a help page for your users you can place a link to it (internal or external to Facebook, again) here. Although I have no idea where it actually appears as I have tried looking for mine.</p>
<p><strong>Private Installation:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_private_installation.gif" alt="Facebook New Application Form - Private Installation" title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p> If you want to prevent information about your application from appearing on news feeds or mini feeds then check this box.</p>
<p><strong>Upload URLs:</strong></p>
<p style="text-align: center"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_upload.gif" alt="facebook_upload Starting your First Facebook App: Demystifying Application Form Field by Field"  title="Starting your First Facebook App: Demystifying Application Form Field by Field" /></p>
<p>If you want to allow uploads in your application you need to fill out both of these fields. Frankly, I don&#8217;t know quite how the action field works, but the callback URL is just your local URL for handling the file upload.</p>
<p>Leave some suggestions, comments, or improvements!</p>
<p>Also, be sure to check out this <a href="http://services.tucows.com/developers/2007/07/25/getting-started-with-facebook-application-development/">sweet first facebook app tutorial on Tucows</a>.<br />
<!--adsense--></p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/starting-your-first-facebook-app-demystifying-application-form-field-by-field/feed/</wfw:commentRss>
	<slash:comments>19</slash:comments>
	</item>
		<item>
		<title>Facebook&#8217;s Advertising Rate Cards Revealed!</title>
		<link>http://www.marketing-ninja.com/facebook-app/facebook-advertising-rate-cards-revealed/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/facebook-advertising-rate-cards-revealed/#comments</comments>
		<pubDate>Tue, 31 Jul 2007 00:46:38 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=51</guid>
		<description><![CDATA[Ho ho ho&#8230; So here&#8217;s the secret to where all of that revenue may or may not be coming into Facebook&#8230; I wonder how this will affect Facebook&#8217;s valuation when it launches its IPO in the near future!
While I typically don&#8217;t like writing small posts, this one is too good to pass up.
Check out the [...]]]></description>
			<content:encoded><![CDATA[<p>Ho ho ho&#8230; So here&#8217;s the secret to where all of that revenue may or may not be coming into Facebook&#8230; I wonder how this will affect Facebook&#8217;s valuation when it launches its IPO in the near future!</p>
<p>While I typically don&#8217;t like writing small posts, this one is too good to pass up.</p>
<p>Check out the <a href="http://mashable.com/2007/07/30/facebook-rate-cards/">article on Mashable</a>!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/facebook-advertising-rate-cards-revealed/feed/</wfw:commentRss>
	<slash:comments>0</slash:comments>
	</item>
		<item>
		<title>Resources on How to Write a Facebook Application</title>
		<link>http://www.marketing-ninja.com/old-stuff/resources-on-how-to-write-a-facebook-application/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/resources-on-how-to-write-a-facebook-application/#comments</comments>
		<pubDate>Sun, 29 Jul 2007 02:19:58 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=50</guid>
		<description><![CDATA[I&#8217;m working on a rather data-intensive Facebook application as we speak, using the Facebook Developer&#8217;s Kit for .NET, which I described in an earlier post. After hearing about how iLike went from 0 to 3 million users in one week, I am a bit paranoid about targeting performance bottlenecks before I let this thing rip; [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m working on a rather data-intensive Facebook application as we speak, using the Facebook Developer&#8217;s Kit for .NET, which I described <a href="http://www.ajaxninja.com/?p=23" title="List of .NET SDKs for Facebook F8 Development">in an earlier post</a>. After hearing about how iLike went from 0 to 3 million users in one week, I am a bit paranoid about targeting performance bottlenecks before I let this thing rip; I don&#8217;t want to be known as that kid who made the Facebook App that failed to account for rapid scalability!</p>
<p>Regardless, I&#8217;m amassing some reading materials for developing Facebook Applications, and while there are not a lot of resources out there for .NET specifically, there are some good tips in general. Here&#8217;s my list:</p>
<p><span id="more-50"></span></p>
<ol>
<li><a href="http://gathadams.com/2007/06/18/how-to-write-a-facebook-application-in-10-minutes/" title="How to Write a Facebook Application in 10 Minutes" target="_blank">How to Write a  Facebook Application in 10 Minutes</a></li>
<li><a href="http://20bits.com/2007/06/19/5-facebook-application-gotchas/" title="5 Facebook Application Gotchas" target="_blank">5 Facebook Application Gotchas</a></li>
<li><a href="http://padrenel.blogs.experienceproject.com/3459.html" title="10 Things That Would Have Been Nice to Know When I starte My Facebook Application" target="_blank">10 Things That Would Have Been Nice to Know When I Started My Facebook Application</a></li>
<li><a href="http://gotads.blogspot.com/2007/07/finding-sample-code-for-facebook-apps.html" title="Finding Sample Code for Facebook Applications" target="_blank">Finding Sample Code for Facebook  Applications</a></li>
<li><a href="http://www.insidefacebook.com/2007/06/07/10-tips-for-releasing-your-facebook-application-and-maximizing-growth/" title="10 Tips for Releasing your Facebook Application and Maximizing Growth" target="_blank">10 Tips for Releasing your Facebook Application, and Maximizing Growth</a></li>
<li><a href="http://www.softwaredeveloper.com/features/develop-facebook-app-072607/" title="How to Develop a Hit Facebook App: 29 Essential Tools and Tutorials" target="_blank">How to Develop a Hit Facebook App: 29 Essential Tools and Tutorials</a> - <strong>YOUR BEST HOPE</strong></li>
</ol>
<p>In addition, I wanted to follow up on my <a href="http://www.ajaxninja.com/?p=34" title="10 Great GDI+ Resources for ASP.NET Developers" target="_blank">10 GDI+ Resources for ASP.NET Developers</a> post by adding that I found a really kickass custom server for automatically doing graphs and I will be including it in my Facebook application; it&#8217;s a <a href="http://www.codeproject.com/aspnet/webchart.asp">custom chart control from the CodeProject, which you should check out.</a></p>
<p>I&#8217;ll be posting some results for my own Facebook Application within a couple of weeks, but I still have a ton of work to do on the data layer, business layer, and I haven&#8217;t even thought about the presentation layer yet, but that&#8217;s what these articles are for!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/resources-on-how-to-write-a-facebook-application/feed/</wfw:commentRss>
	<slash:comments>5</slash:comments>
	</item>
		<item>
		<title>Enough with the Facebook Fanboys</title>
		<link>http://www.marketing-ninja.com/facebook-app/enough-with-the-facebook-fanboys/</link>
		<comments>http://www.marketing-ninja.com/facebook-app/enough-with-the-facebook-fanboys/#comments</comments>
		<pubDate>Wed, 25 Jul 2007 01:02:30 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=35</guid>
		<description><![CDATA[We all recognize that Facebook is more or less becoming a fixture of the Internet and community websites; I remember when it became a gigantic deal for me the in the Fall of 2004 when I was an entering freshman at Vanderbilt University, but the Web 2.0 parade of self-appointed &#8220;new media&#8221; experts has talked [...]]]></description>
			<content:encoded><![CDATA[<p>We all recognize that <a href="http://www.facebook.com/" title="Facebook" target="_blank">Facebook</a> is more or less becoming a fixture of the Internet and community websites; I remember when it became a gigantic deal for me the in the Fall of 2004 when I was an entering freshman at Vanderbilt University, but the <a href="http://scobleizer.com/2007/07/17/why-microsoft-doesnt-deserve-facebook/" title="Scoble blathering about why Microsoft doesn't deserve facebook" target="_blank">Web 2.0 parade of self-appointed &#8220;new media&#8221; experts has talked Facebook to death</a>. I&#8217;m not saying that Facebook isn&#8217;t influential or worth discussing; I myself even wrote a post <a href="http://www.ajaxninja.com/?p=23" title="AjaxNinja.com - List of Facebook SDKs for .NET" target="_blank">documenting the .NET toolkits available for programming Facebook Applications</a> not more than a day ago. The point is that the buzz about Facebook has become deafening to the point where I think my ears are going to bleed if I have to hear anymore of it.<br />
<span id="more-35"></span><br />
A quick example? <a href="http://mashable.com/2007/07/22/facebook-skip-this-step/" title="Mashable bitches about the skip this step button being removed" target="_blank">Mashable bitches about Facebook removing the &#8220;skip this step&#8221;</a> button from the add friends feature. The only good that came from Mashable posting that was the <a href="http://www.uncov.com/2007/7/23/mashable-ball-aches-over-facebook" title="Mashable Ball-Aches over Facebook" target="_blank">hilarious follow up by Ted at Uncov</a>. Mashable&#8217;s post even incited a ton of <a href="http://www.forever-digital.net/2007/07/23/reconsidering-facebook/" title="Waaaaaaaaaaaaaaaaaah" target="_blank">hyper-reactive bloggers to talk up the possibility of quitting facebook</a> for reasons too inane to be explain by yours truly. While you&#8217;re at it, run off to a Belgian monastery and make Trappist ales for the rest of your life so you don&#8217;t have to succumb to the agony of making it known publicly how you met your friends through facebook!  If you&#8217;re a large and &#8220;influential&#8221; Web 2.0 super-expert site like Mashable, why would you make a front page article about a single BUTTON going missing? IT&#8217;S A BUTTON, not even a feature, A BUTTON. Here&#8217;s an easy, three step alternative to telling the entire blogosphere to get their guns:</p>
<p><strong>1.</strong> Click on the bottom right hand corner of <u><em><strong>any</strong></em></u> Facebook page and click the HELP link.</p>
<p><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_1.PNG" title="Facebook Help Link"></a></p>
<p><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_1.PNG" title="Facebook Help Link"></a></p>
<p style="text-align: center"><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_1.PNG" title="Facebook Help Link"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_1.PNG" alt="Facebook Help Link" border="0" title="Enough with the Facebook Fanboys" /></a></p>
<p><strong>2. </strong>Once the help page loads, click on the SUGGESTIONS tab, because this is where you can make a SUGGESTION to FACEBOOK. Mashable is not the place to make a SUGGESTION to FACEBOOK because Mashable is, in fact, NOT FACEBOOK.</p>
<p><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_2.PNG" title="Suggestion Page"></a></p>
<p style="text-align: center"><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_2.PNG" title="Suggestion Page"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_2.PNG" alt="Suggestion Page" border="0" title="Enough with the Facebook Fanboys" /></a></p>
<p><strong>3.</strong> Write a polite letter and hit the send button; letting Facebook aware of your opinions without taking up readable space on the Internet, inciting idiots to paranoia, or readers with half a brain into fits of rage.</p>
<p><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_3.PNG" title="Send a Suggestion to Facebook"></a></p>
<p style="text-align: center"><a href="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_3.PNG" title="Send a Suggestion to Facebook"><img src="http://www.ajaxninja.com/wp-content/uploads/2007/07/facebook_suggestion_3.PNG" alt="Send a Suggestion to Facebook" border="0" title="Enough with the Facebook Fanboys" /></a></p>
<p>As though it were not bad enough that <a href="http://livinginfirstlife.wordpress.com/2007/07/23/robert-scoble-is-a-tool-and-a-shill/" title="Living in First Life: Robert Scoble" target="_blank">Living in First Life-certified Dumb Bloggers like Robert Scoble</a> are obsessed with Facebook anyways, we now have to deal with the fallout from the <a href="http://www.p2pnet.net/story/12876" title="Zuckerburg headed to face off with ConnectU" target="_blank">Mark Zuckberg v. ConnectU</a> guys trial. FUCK! But wait, it gets better! Now <a href="http://mashable.com/2007/07/24/fbfactory/" title="FACEBOOK FACTORY GIVES MASHABLE WOOD" target="_blank">Mashable is drawing wood for a new web design company that focuses exclusively on Facebook Apps</a>! THANK GOD! Maybe I&#8217;ll hire them to make my Facebook App! Had enough Facebook, how about we let the <a href="http://www.techcrunch.com/2007/07/24/9-ways-to-build-your-own-social-network/" title="TechCrunch Wants More Facebooks" target="_blank">geniuses at TechCrunch tell us how to create our own social networks</a>, just like Facebook, God of the Web 2.0 Universe!</p>
<p>Please, enough with the Facebook. Sure, I love seeing pictures of drunk college students as much as the next person, but for the love of God I do not want my Technorati page raped by Facebook fanboys again.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/facebook-app/enough-with-the-facebook-fanboys/feed/</wfw:commentRss>
	<slash:comments>1</slash:comments>
	</item>
		<item>
		<title>List of Facebook SDKs for .NET</title>
		<link>http://www.marketing-ninja.com/old-stuff/list-of-facebook-sdks-for-net/</link>
		<comments>http://www.marketing-ninja.com/old-stuff/list-of-facebook-sdks-for-net/#comments</comments>
		<pubDate>Mon, 23 Jul 2007 04:34:31 +0000</pubDate>
		<dc:creator>Aaronontheweb</dc:creator>
		
		<category><![CDATA[Facebook Applications]]></category>

		<category><![CDATA[Old Stuff]]></category>

		<guid isPermaLink="false">http://www.ajaxninja.com/?p=23</guid>
		<description><![CDATA[I&#8217;ve got an idea for a simple Facebook application that I want to roll out, namely because I want it to be the first Facebook that can be viewed in a Mobile web browser, but I also think that it&#8217;s simple enough such that it would only take a few days to develop. Regardless, I&#8217;ve [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve got an idea for a simple <a href="http://www.facebook.com/" title="Please don't steal my ideas too, Mr. Zuckerberg" target="_blank">Facebook</a> application that I want to roll out, namely because I want it to be the first Facebook that can be viewed in a Mobile web browser, but I also think that it&#8217;s simple enough such that it would only take a few days to develop. Regardless, I&#8217;ve been poking around some tech blogs looking for Facebook development libraries for .NET and I thought I might share some of my search results.</p>
<ol>
<li> <a href="http://www.nikhilk.net/FacebookNET.aspx" title="Facebook.NET - Nikhilk Kothari" target="_blank">Facebook.NET</a> - By Nikhil Kothari, author of <a href="http://www.amazon.com/gp/product/0735615829?ie=UTF8&amp;tag=jiidevsblo-20&amp;linkCode=as2&amp;camp=1789&amp;creative=9325&amp;creativeASIN=0735615829">Developing Microsoft ASP.NET Server Controls and Components</a><img src="http://www.assoc-amazon.com/e/ir?t=jiidevsblo-20&amp;l=as2&amp;o=1&amp;a=0735615829" style="border: medium none  ! important; margin: 0px ! important" border="0" height="1" width="1" title="List of Facebook SDKs for .NET" alt=" List of Facebook SDKs for .NET" /></li>
<li><a href="http://www.codeplex.com/FacebookToolkit" title="Facebook Developers Toolkit" target="_blank">Facebook Developer Toolkit</a> - Developed by <a href="http://www.claritycon.com/" title="Clarity Consulting" target="_blank">Clarity Consulting</a> and endorsed heavily by Microsoft; integrates very well with Visual Studio Express.</li>
<li><a href="http://www.stevetrefethen.com/blog/VisualStudioStarterKitForFacebookApplicationDevelopment.aspx" title="Visual Studio Starter Kit for Facebook" target="_blank">Visual Studio Starter Kit for Facebook</a> - By Steve Trefethen</li>
<li><a href="http://www.lagorio.net/windows/facebook/" title="Facebook API Client Library for VB.NET" target="_blank">Facebook API Client Library for VB.NET</a> - By Jay Lagorio; this is earliest implementation of the API that I had come across.</li>
</ol>
<p>Also, be sure to check out the <a href="http://wiki.developers.facebook.com/index.php/ASP.NET" title="ASP.NET - Facebook Developer's Wiki" target="_blank">ASP.NET page on the Facebook Developer&#8217;s wiki</a>&#8230; Even though its list of .NET controls isn&#8217;t as up-to-date as ours <img src='http://www.marketing-ninja.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' title="List of Facebook SDKs for .NET" /> </p>
<p>On an aside, check out my first <a href="http://www.ajaxninja.com/lab/mobile/preferredMarkup/preferredMarkup.aspx" title="AjaxNinja.com - Mobile.NET Lab - Preferred Browser Test" target="_blank">demo at our ASP.NET mobile laboratory</a>, even though it&#8217;s just a simple test, I still thought it was pretty cool when I used my treo on it. I&#8217;ll be publishing more demos throughout the week on our lab page.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.marketing-ninja.com/old-stuff/list-of-facebook-sdks-for-net/feed/</wfw:commentRss>
	<slash:comments>10</slash:comments>
	</item>
	</channel>
</rss>

<!-- Dynamic Page Served (once) in 1.617 seconds -->
