<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="/stylesheets/rss.css"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/">
  <channel>
    <title>OnMyList Blog: Facebook app invites with RoR</title>
    <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror</link>
    <language>en-us</language>
    <ttl>40</ttl>
    <description>List your pants off!</description>
    <item>
      <title>Facebook app invites with RoR</title>
      <description>&lt;p&gt;Ray and I spent quite a while to get everything in our Facebook app to work. There were some blog posts about how get invites to work but they are outdated (and they involve some nasty FQLs).&lt;/p&gt;


	&lt;p&gt;One thing that I did was to create a beta fb application to test all this stuff out with our beta server, this helps a lot.&lt;/p&gt;


	&lt;p&gt;So in case you&amp;#8217;re going crazy adding invites to your fb app, here&amp;#8217;s how we did it. Keep in mind that the fb platform changes rapidly so by the time you read this there is probably a better way to do invites.&lt;/p&gt;


	&lt;p&gt;In your canvas partial, add a link to http://apps.facebook.com/[yourappname]/invite&lt;/p&gt;


	&lt;p&gt;here&amp;#8217;s how our invite method looks like:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_ruby "&gt;  &lt;span class="keyword"&gt;def &lt;/span&gt;&lt;span class="method"&gt;invite&lt;/span&gt;
    &lt;span class="attribute"&gt;@appname&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;ENV&lt;/span&gt;&lt;span class="punct"&gt;['&lt;/span&gt;&lt;span class="string"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="punct"&gt;']&lt;/span&gt; &lt;span class="punct"&gt;==&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;production&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="punct"&gt;?&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;onmylist&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;onmylist_beta&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt;
    &lt;span class="attribute"&gt;@appid&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="constant"&gt;ENV&lt;/span&gt;&lt;span class="punct"&gt;['&lt;/span&gt;&lt;span class="string"&gt;RAILS_ENV&lt;/span&gt;&lt;span class="punct"&gt;']&lt;/span&gt; &lt;span class="punct"&gt;==&lt;/span&gt; &lt;span class="punct"&gt;'&lt;/span&gt;&lt;span class="string"&gt;production&lt;/span&gt;&lt;span class="punct"&gt;'&lt;/span&gt; &lt;span class="punct"&gt;?&lt;/span&gt; &lt;span class="number"&gt;12345678&lt;/span&gt; &lt;span class="punct"&gt;:&lt;/span&gt; &lt;span class="number"&gt;01234567&lt;/span&gt;

    &lt;span class="keyword"&gt;if&lt;/span&gt; &lt;span class="ident"&gt;fbsession&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;is_valid?&lt;/span&gt;
      &lt;span class="attribute"&gt;@friends2exclude&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="ident"&gt;fbsession&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;friends_getAppUsers&lt;/span&gt;&lt;span class="punct"&gt;.&lt;/span&gt;&lt;span class="ident"&gt;uid_list&lt;/span&gt;        
    &lt;span class="keyword"&gt;end&lt;/span&gt;

    &lt;span class="ident"&gt;render&lt;/span&gt; &lt;span class="symbol"&gt;:partial&lt;/span&gt; &lt;span class="punct"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;select_fbml&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; 
  &lt;span class="keyword"&gt;end&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;note: app id&amp;#8217;s are not real! :)&lt;/p&gt;


	&lt;p&gt;Here&amp;#8217;s the select_fbml partial:&lt;/p&gt;


&lt;div class="typocode"&gt;&lt;pre&gt;&lt;code class="typocode_xml "&gt;&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;fbml&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;subtitle&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;Invite your friends to join OnMyList&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;subtitle&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt; &lt;span class="attribute"&gt;style&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;background-color:#f2fbdc;padding-bottom:0;margin-bottom:0&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;%&lt;/span&gt; &lt;span class="attribute"&gt;join_button&lt;/span&gt; &lt;span class="punct"&gt;=&lt;/span&gt; &lt;span class="attribute"&gt;CGI::escapeHTML&lt;/span&gt; &lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;fb:req-choice url='http://www.facebook.com/apps/application.php?id=#{@appid}' label='Join OnMyList'&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; %&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;request-form&lt;/span&gt; 
&lt;span class="attribute"&gt;method&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;POST&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="attribute"&gt;invite&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;true&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="attribute"&gt;type&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;OnMyList&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="attribute"&gt;action&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;http://apps.facebook.com/&amp;lt;%= @appname %&amp;gt;/&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="attribute"&gt;content&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Let's join OnMyList so you can list your pants off! &amp;lt;%= join_button %&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;multi-friend-selector&lt;/span&gt;
&lt;span class="attribute"&gt;rows&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;5&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="attribute"&gt;exclude_ids&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;&amp;lt;%= @friends2exclude.join(',') %&amp;gt;&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt;
&lt;span class="attribute"&gt;showborder&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;false&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&lt;/span&gt; 
&lt;span class="attribute"&gt;actiontext&lt;/span&gt;&lt;span class="punct"&gt;=&amp;quot;&lt;/span&gt;&lt;span class="string"&gt;Here are your friends who don't have OnMyList. Invite them now!&lt;/span&gt;&lt;span class="punct"&gt;&amp;quot;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;request-form&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;

&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="tag"&gt;div&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="punct"&gt;&amp;lt;/&lt;/span&gt;&lt;span class="namespace"&gt;fb&lt;/span&gt;&lt;span class="punct"&gt;:&lt;/span&gt;&lt;span class="tag"&gt;fbml&lt;/span&gt;&lt;span class="punct"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;

	&lt;p&gt;the exclude_ids param is to exclude your friends who already have the app installed.&lt;/p&gt;</description>
      <pubDate>Wed, 19 Sep 2007 16:25:00 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:ab6384ae-bf0b-4939-98d8-0e54aed585f4</guid>
      <author>Andrew</author>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror</link>
      <category>Ruby on Rails</category>
      <category>facebook</category>
      <category>application</category>
      <category>rubyonrails</category>
      <category>RoR</category>
      <trackback:ping>http://blog.onmylist.com/articles/trackback/25</trackback:ping>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by Amber Marks</title>
      <description>bj6ujv4gijle0izz
</description>
      <pubDate>Wed, 12 Nov 2008 15:30:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:ec68340c-1abb-43b1-bd48-2490e9a37f2d</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-44042</link>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by Valerie Rosario</title>
      <description>vizarded trivia cubiform caza nonabstemious uncorruptive enlargeableness requench
&lt;a href="http://www.tente.com/" rel="nofollow"&gt;http://www.tente.com/&lt;/a&gt; &gt;Tente-Rollen GmbH &amp; Co.
 &lt;a href="http://www.liverpool-community.org.uk/" rel="nofollow"&gt;http://www.liverpool-community.org.uk/&lt;/a&gt; 
</description>
      <pubDate>Fri, 20 Jun 2008 06:50:22 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:ff65c985-debf-4a34-9d9c-5a4b571ce953</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-21989</link>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by Bernard Stark</title>
      <description>vizarded trivia cubiform caza nonabstemious uncorruptive enlargeableness requench
&lt;a href="http://www.timkoenning.com/" rel="nofollow"&gt;http://www.timkoenning.com/&lt;/a&gt; &gt;American Wealth Management, Inc.
 &lt;a href="http://www.hamiltonrescue.org/" rel="nofollow"&gt;http://www.hamiltonrescue.org/&lt;/a&gt; 
</description>
      <pubDate>Fri, 13 Jun 2008 16:38:12 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:a34255bc-4b7b-49d2-963c-6a22ec18170a</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-21071</link>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by yagnesh</title>
      <description>I&#8217;ve having the same problem as fs above. I get an 500 -Internal Server Error and the stack trace leads back to require &#8220;facebook_rails_controller_extensions&#8221;. Does anyone have any idea what that is about?</description>
      <pubDate>Thu, 17 Apr 2008 06:06:32 -0400</pubDate>
      <guid isPermaLink="false">urn:uuid:aa88fb46-5277-4b76-8e03-ccb15cf97197</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-13371</link>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by Raymond Law</title>
      <description>I don't think so, because Facebook handles the actual invitation.  We used the above code to generate and present the invitation page in Facebook.  After the user selects friends to invite and Facebook sends the invitations, the user is redirected to the canvas page, I believe.</description>
      <pubDate>Thu, 29 Nov 2007 17:06:14 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:c5ed7ce1-5424-4ff2-bea4-d915971355b0</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-755</link>
    </item>
    <item>
      <title>"Facebook app invites with RoR" by Charlie</title>
      <description>Hey,
   Great code piece, it helps a lot. I have a quick question. Do you know if its possible to extract the number of invited users and use that in your rails app?
Thanks,
Charlie - &lt;a href="mailto:rcwhite@colby.edu" rel="nofollow"&gt;rcwhite@colby.edu&lt;/a&gt;</description>
      <pubDate>Wed, 28 Nov 2007 23:18:00 -0500</pubDate>
      <guid isPermaLink="false">urn:uuid:12c6826a-5eb5-42f0-abbf-2360a60dbe96</guid>
      <link>http://blog.onmylist.com/articles/2007/09/19/facebook-app-invites-with-ror#comment-683</link>
    </item>
  </channel>
</rss>
