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

<channel>
	<title>Thomas Gericke &#187; API</title>
	<atom:link href="http://www.thomasgericke.de/v4/interactive/blog/tag/api/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.thomasgericke.de/v4/interactive/blog</link>
	<description>Facts. Thoughts. Stories. A Blog.</description>
	<lastBuildDate>Mon, 30 Aug 2010 07:30:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>unfake.it About To Block bit.ly And Others</title>
		<link>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-about-to-block-bit-ly-and-others/</link>
		<comments>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-about-to-block-bit-ly-and-others/#comments</comments>
		<pubDate>Wed, 25 Aug 2010 07:00:05 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[unfake]]></category>
		<category><![CDATA[url shortening]]></category>

		<guid isPermaLink="false">http://www.thomasgericke.de/v4/interactive/blog/?p=8172</guid>
		<description><![CDATA[Due to excessive spam abuse, unfake.it will soon begin  [...]]]></description>
			<content:encoded><![CDATA[<p>Due to excessive spam abuse, <code>unfake.it</code> will soon begin to block URLs from various other URL shortening services such as <a href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://bit.ly/" target="_blank" title="(8 hits)">http://bit.ly/</a>. All incoming URLs (no matter if they&#8217;re injected via web or API) from blacklisted domains won&#8217;t be shortened any longer as of the effective date.</p>
<p style="text-align: center;"><strong>Effective date is: 2010-08-26 6pm UTC</strong></p>
<p>Reasons ain&#8217;t to harm other shortening services, but to reduce spam. It&#8217;s a common practice of spammers to shorten and shorten and shorten their URLs through more and more shortening services. <code>unfake.it</code> won&#8217;t support such habits any longer.</p>
<p>If you intend to shorten formerly shortened URLs again and have the feeling that it&#8217;s okay, get in touch with me. We&#8217;ll find a way! Maybe by using an API key.</p>
<p>I feel sorry for all those 42.000+ short URLs, but there ain&#8217;t no other way to prevent further spamming. Already shortened URLs will remain valid, so they might still be accessed in the future.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-about-to-block-bit-ly-and-others/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>unfake.it ist Platz 1 von über 19 Millionen! Sponsoren interessiert?</title>
		<link>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-ist-platz-1-von-uber-19-millionen-sponsoren-interessiert/</link>
		<comments>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-ist-platz-1-von-uber-19-millionen-sponsoren-interessiert/#comments</comments>
		<pubDate>Thu, 12 Aug 2010 22:37:55 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[daily life]]></category>
		<category><![CDATA[tech]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[sponsoring]]></category>
		<category><![CDATA[unfake]]></category>
		<category><![CDATA[unfake plugin]]></category>
		<category><![CDATA[url shortening]]></category>

		<guid isPermaLink="false">http://www.thomasgericke.de/v4/interactive/blog/?p=7262</guid>
		<description><![CDATA[Ich wundere mich seit Tagen über extrem angestiegenen  [...]]]></description>
			<content:encoded><![CDATA[<p>Ich wundere mich seit Tagen über extrem angestiegenen Traffic für meinen URL Shortener <a href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/" target="_blank" title="(363 hits)">unfake.it</a>. Des Rätsels Lösung ist wohl sehr einfach: eine <a href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://www.google.de/search?q=url+faker" target="_blank" title="(12 hits)">Google-Suche nach &#8220;url faker&#8221;</a> liefert 19.400.000 Ergebnisse. Und unfake.it ist auf Platz 1 inkl. Mini-Sitelinks, Platz 2 ist mein <a href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://www.thomasgericke.de/v4/interactive/blog/2009/01/url-shortener-unfaker/" target="_blank" title="(15 hits)">Blog-Artikel über unfake.it</a> vom 25. Januar 2009. Das ist ziemlich neu, da bin ich mir relativ sicher.</p>
<p>Da wundert mich nichts mehr. Leider, leider gerät das System aber so langsam aber Sicher an die Lastgrenzen und ich muss mir überlegen, ob ich nicht doch eine meiner Regeln breche, denn ich hatte ursprünglich beschlossen und kommuniziert, dass unfake.it <a href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/help.php#commercials" target="_blank" title="(199 hits)">niemals Werbung vor oder nach dem Klicken einer Kurz-URL anzeigen wird</a>.</p>
<p><strong>Was meint ihr?</strong> Sollte ich Werbung schalten und so ggf. neue, schnellere Hardware finanzieren? Oder findet sich ggf. irgendwo ein freundlicher <strong>Sponsor</strong>? Bin gerne bereit, darüber zu verhandeln <img src='http://www.thomasgericke.de/v4/interactive/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomasgericke.de/v4/interactive/blog/2010/08/unfake-it-ist-platz-1-von-uber-19-millionen-sponsoren-interessiert/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>unfake.it: performance increase and temporary twitter failure</title>
		<link>http://www.thomasgericke.de/v4/interactive/blog/2009/12/unfakeit-performance-increase-and-temporary-twitter-failure/</link>
		<comments>http://www.thomasgericke.de/v4/interactive/blog/2009/12/unfakeit-performance-increase-and-temporary-twitter-failure/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 15:02:25 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[internet]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[twitter]]></category>
		<category><![CDATA[unfake]]></category>
		<category><![CDATA[url shortening]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.thomasgericke.de/v4/interactive/blog/?p=4541</guid>
		<description><![CDATA[Hi there,

during the past few days, unfake.it's perf [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there,</p>
<p>during the past few days, <a title="unfake.it (363 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/" target="_blank">unfake.it</a>&#8216;s performance increased dramatically. Several scripts and jobs have been <strong>moved onto new servers</strong>, the database structure and various <code>SQL</code> statements have been enhanced and even <code>SQL SELECT</code> statements have been optimized to more and more use readonly slave servers. Most URLs are being faked in much less than <strong>a tenth of a second</strong>. The <a title="magical previews (199 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/help.php#preview" target="_blank">magical preview</a>s of faked URLs are generated <strong>almost instantly</strong>, since performance increased dramatically.</p>
<p>Unfortunately, faked URLs weren&#8217;t posted to <a title="Twitter (44 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://twitter.com/" target="_blank">Twitter</a> when using the <a title="WordPress Plugin (282 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://wordpress.org/extend/plugins/url-shortener-for-twitter-tools/" target="_blank">WordPress Plugin</a> during the past 4 hours due to a <strong>tiny misconfiguration</strong>. This issue could be solved.</p>
<p><a title="unfake.it (363 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/" target="_blank">unfake.it</a> has become <strong>a more and more commonly used URL shortener</strong> during the past months. Almost <strong>1.000 URLs</strong> are faked in a 24 hour period, even though this magic edge has not yet been crossed. See the <a title="stats (104 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://unfake.it/stats.php" target="_blank">stats</a> for more information &#8217;bout that.</p>
<p>Bye, Thomas</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomasgericke.de/v4/interactive/blog/2009/12/unfakeit-performance-increase-and-temporary-twitter-failure/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Updating profile boxes with a facebook app</title>
		<link>http://www.thomasgericke.de/v4/interactive/blog/2009/03/updating-profile-boxes-with-a-facebook-app/</link>
		<comments>http://www.thomasgericke.de/v4/interactive/blog/2009/03/updating-profile-boxes-with-a-facebook-app/#comments</comments>
		<pubDate>Thu, 12 Mar 2009 21:52:33 +0000</pubDate>
		<dc:creator>Thomas</dc:creator>
				<category><![CDATA[tech]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[facebook]]></category>
		<category><![CDATA[FBML]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.thomasgericke.de/v4/interactive/blog/?p=1601</guid>
		<description><![CDATA[Hi there!

A few days ago, I started to write my firs [...]]]></description>
			<content:encoded><![CDATA[<p>Hi there!</p>
<p>A few days ago, I started to write <strong>my first own facebook application</strong>. It all went quite okay until one certain point: I wanted my application to update the profile box of the user, which uses the app at that single moment. And that wasn&#8217;t as easy, as I thought.</p>
<p>The problem was: after the profile box has been updated, <strong>all profile boxes of all users had the same content</strong> &#8211; the content of the user who last updated his profile box.</p>
<p>I will come to the solution later. First of all, a quick explanation of what I needed to do:</p>
<ol>
<li>I <strong>read the documentation</strong> of facebook&#8217;s application guide to understand the <a title="API (125 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://wiki.developers.facebook.com/index.php/API" target="_blank">API</a> and the <a title="FBML (149 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://wiki.developers.facebook.com/index.php/FBML" target="_blank">FBML language</a></li>
<li>I <strong>set up my own application</strong> using the <a title="step-by-step guide (339 hits)" href="http://www.thomasgericke.de/v4/interactive/blog/go.php?http://developers.facebook.com/get_started.php" target="_blank">step-by-step guide</a></li>
<li>I <strong>set up my new application on my own host</strong> including facebook&#8217;s PHP libraries</li>
</ol>
<p><strong>Here&#8217;s the code step-by-step </strong>(just put all sniplets together)<strong>:</strong></p>
<p><strong><code>Code sniplet #1</code></strong></p>
<pre class="brush: php">require_once &#039;facebook-platform/php/facebook.php&#039;;

$appid = &#039;xxxxxxxxxxxx&#039;;
$appapikey = &#039;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#039;;
$appsecret = &#039;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#039;;

$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook-&gt;require_login();</pre>
<p><strong>Above:</strong> first of all, we need to include facebook&#8217;s <strong>PHP libraries</strong>, define several <strong>variables</strong> for our application, <strong>initialize our facebook object</strong> and <strong>retrieve the UID</strong> of the user who currently uses the application.</p>
<p><strong><code>Code sniplet #2</code></strong></p>
<pre class="brush: php">$fb_box = &quot;&lt;H4 class=&#039;box_header clearfix&#039;&gt;&lt;span&gt;&quot;;
$fb_box .= &quot;Hello World!&quot;;
$fb_box .= &quot;&lt;/span&gt;&lt;/H4&gt;&quot;;
$fb_box .= &quot;&lt;div&gt;I am &quot;;
$fb_box .= &quot;&lt;fb:name uid=\&quot;$user_id\&quot; useyou=\&quot;false\&quot; /&gt;.&quot;;
$fb_box .= &quot;Nice you&#039;re on my page.&lt;/div&gt;&quot;;
$fb_box .= &quot;Some more content in HTML or FBML...&quot;;</pre>
<p><strong>Above:</strong> we then define the <strong>content</strong> which we want to be displayed <strong>within the profile box</strong>. In this examble, it will be the name of the user, greeting the visitor.</p>
<p><strong><code>Code sniplet #3</code></strong></p>
<pre class="brush: php">$fb_box_handle = &#039;pb_&#039; . $appid . &#039;_&#039; . $user_id;</pre>
<p><strong>Above:</strong> this is <strong>important</strong>! At this point, I got stuck for a while. The reason was, facebook <strong>caches</strong> profile boxes content until the application&#8217;s canvas page is requested for the next time. <strong>The handle is very important</strong> for that caching mechanism, since it has to be <strong>a unique identifier</strong> for each application and each user. For that reason, I simply use the prefix &#8216;<strong>pb_</strong>&#8216; followed by the <strong>applications ID</strong> (defined above) and the <strong>UID</strong> of the current user (also defined above)!</p>
<p><strong><code>Code sniplet #4</code></strong></p>
<pre class="brush: php">$facebook-&gt;api_client-&gt;call_method(&#039;facebook.profile.setFBML&#039;,
array(
&#039;api_key&#039; =&gt; $appapikey,
&#039;v&#039; =&gt; &#039;1.0&#039;,
&#039;uid&#039; =&gt; $user_id,
&#039;profile&#039; =&gt; &#039;&lt;fb:narrow&gt;&lt;fb:ref handle=&quot;&#039; . $fb_box_handle . &#039;&quot; /&gt;&lt;/fb:narrow&gt;&#039;,
&#039;profile_main&#039; =&gt; &#039;&lt;fb:ref handle=&quot;&#039; . $fb_box_handle . &#039;&quot; /&gt;&#039;,
)
);</pre>
<p><strong>Above:</strong> the rest is quite simple. We make an <strong>API call</strong> to facebook and send our <strong>application key</strong>, the <strong>protocol version</strong>, the <strong>UID</strong> of the facebook user whose profile box ought to be updated and, of course, the <strong>content</strong> for that box. The content will be sent as the <strong>reference handle</strong> we defined earlier.</p>
<p>If you want to update multiple profile boxes with one single API call, I guess, this could work if you send an array containing the UIDs. If not, you can still get all those UIDs, walk through the array and perform multiple API calls. I read somewhere, some users had problem updating large numbers of profiles&#8230; Just give it a try.</p>
<p>Comments (if it worked for you or even if it didn&#8217;t) are appreciated <img src='http://www.thomasgericke.de/v4/interactive/blog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><code>UPDATE because of comment #2:</code></p>
<p>The example above is about updating content in a users profile, <strong>not</strong> about setting up a profile box on a profile. You should read the manual carefully.</p>
<p>A user has to approve a certain application to create a profile box. Therefore, you need to <strong>render a button</strong>, which sets up the box.  You can easily do this by:</p>
<pre class="brush: php">$appapikey = &#039;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#039;;
$appsecret = &#039;xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx&#039;;
$facebook = new Facebook($appapikey, $appsecret);
$user_id = $facebook-&gt;require_login();
$facebook-&gt;api_client-&gt;profile_setFBML($appapikey, $user_id, &#039;profile&#039;, NULL, &#039;mobile_profile&#039;, &#039;profile_main&#039;);
echo &quot;&lt;fb:add-section-button section=&#039;profile&#039; /&gt;&quot;;</pre>
<p>The last line renders the button, you want to have on your canvas page.</p>
<p>Good luck!  Thomas</p>
]]></content:encoded>
			<wfw:commentRss>http://www.thomasgericke.de/v4/interactive/blog/2009/03/updating-profile-boxes-with-a-facebook-app/feed/</wfw:commentRss>
		<slash:comments>14</slash:comments>
		</item>
	</channel>
</rss>
