<?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>Jason Ashdown &#187; Web Development</title>
	<atom:link href="http://www.jasonashdown.co.uk/category/web-dev/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jasonashdown.co.uk</link>
	<description>There&#039;s no place like 127.0.0.1</description>
	<lastBuildDate>Thu, 22 Dec 2011 11:40:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>Fixed version of Activate Users Plugin (BuddyPress/MU/WP)</title>
		<link>http://www.jasonashdown.co.uk/2011/12/fixed-version-of-activate-users-buddypress/</link>
		<comments>http://www.jasonashdown.co.uk/2011/12/fixed-version-of-activate-users-buddypress/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 20:40:20 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=254</guid>
		<description><![CDATA[Since I have been testing BuddyPress, I required a plugin to activate users &#8211; but the only one existing was a little bit broken. http://wordpress.org/extend/plugins/wp-activate-users/ So I fixed the errors and got it working again, so enjoy :) Download: Fixed &#8230; <a href="http://www.jasonashdown.co.uk/2011/12/fixed-version-of-activate-users-buddypress/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Since I have been testing BuddyPress, I required a plugin to activate users &#8211; but the only one existing was a little bit broken.</p>
<p><a href="http://wordpress.org/extend/plugins/wp-activate-users/">http://wordpress.org/extend/plugins/wp-activate-users/</a></p>
<p>So I fixed the errors and got it working again, so enjoy :)</p>
<p>Download: <a href="http://www.jasonashdown.co.uk/wp-content/uploads/2011/12/wp-activate-users.zip">Fixed WP Activate Users</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/12/fixed-version-of-activate-users-buddypress/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google rolls out +1 on AdSense adverts</title>
		<link>http://www.jasonashdown.co.uk/2011/09/google-rolls-out-1-on-adsense-adverts/</link>
		<comments>http://www.jasonashdown.co.uk/2011/09/google-rolls-out-1-on-adsense-adverts/#comments</comments>
		<pubDate>Thu, 22 Sep 2011 09:31:34 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Waffle News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Google Adsense]]></category>
		<category><![CDATA[Google Plus]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=231</guid>
		<description><![CDATA[I received this email in the post this morning, it reads as follows: So Google is going to let users tell them what Ad&#8217;s they like with adding the +1 to them? It will be interesting to see if it &#8230; <a href="http://www.jasonashdown.co.uk/2011/09/google-rolls-out-1-on-adsense-adverts/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I received this email in the post this morning, it reads as follows:</p>
<p><img class="size-full wp-image-232 alignnone" style="max-width: 100%;" title="google-ad-sense" src="http://www.jasonashdown.co.uk/wp-content/uploads/2011/09/google-ad-sense.png" alt="Google - Hello,  In the next month, we'll introduce the +1 button and personal recommendations to display ads. The +1 button will begin to appear on AdSense for Content and AdSense for Mobile Content display ad formats -- image, animated gif, and Flash. +1s will be one additional signal to help determine an ad's relevance and we'll continue to show the ads that will generate the most revenue for you.  We previously launched the +1 button on Google search and for publisher sites to make it easier for people to share and discover content across the web. Soon, your users will be able to endorse specific ads and make the ads more likely to appear to their social connections. We believe that these recommendations could help your readers notice ads on your site more, leading to higher returns for you over time.  If you prefer not to show the +1 buttons on display ads on your pages, you can opt out in your account. For more information please visit the Inside AdSense blog.  Sincerely,  The Google AdSense team" width="577" height="526" /></p>
<p style="text-align: left;">So Google is going to let users tell them what Ad&#8217;s they like with adding the +1 to them?</p>
<p>It will be interesting to see if it catches on.</p>
<p>Too bad they had to launch it today&#8230; It&#8217;s seems to be dwarfed by the news of Facebook&#8217;s new re-design which is causing a bit of fiasco &#8211; no surprise there then.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/09/google-rolls-out-1-on-adsense-adverts/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Solved: Debian Squeeze + Nginx + PHP5-FPM</title>
		<link>http://www.jasonashdown.co.uk/2011/09/solved-debian-squeeze-nginx-php5-fpm/</link>
		<comments>http://www.jasonashdown.co.uk/2011/09/solved-debian-squeeze-nginx-php5-fpm/#comments</comments>
		<pubDate>Tue, 20 Sep 2011 00:24:47 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Waffle News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Debian Squeeze]]></category>
		<category><![CDATA[Nginx]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=228</guid>
		<description><![CDATA[After tiresomely testing the config &#8211; I eventually got it to work. Once you know how it&#8217;s really easy but I kept getting a &#8220;502 Bad Gateway&#8221; error that confused me. Benefits of sockets over TCP: Faster connection over sockets &#8230; <a href="http://www.jasonashdown.co.uk/2011/09/solved-debian-squeeze-nginx-php5-fpm/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After tiresomely testing the config &#8211; I eventually got it to work.</p>
<p>Once you know how it&#8217;s really easy but I kept getting a &#8220;502 Bad Gateway&#8221; error that confused me.</p>
<p>Benefits of sockets over TCP:</p>
<ul>
<li>Faster connection over sockets than TCP; 20% boost</li>
<li>More secure as sockets are harder to break their permissions</li>
</ul>
<p>Anyway, here&#8217;s what you need to do. All config locations are the defaults installed by Debian Squeeze.</p>
<p>Add Dotdeb&#8217;s sources in your Debian <em>/etc/apt/source.list</em></p>
<pre class="brush: plain; title: ; notranslate">
## PHP5-FPM
deb http://packages.dotdeb.org stable all
deb-src http://packages.dotdeb.org stable all
</pre>
<p>Then install php5-fpm:</p>
<pre class="brush: plain; title: ; notranslate">
apt-get update
apt-get install php5-fpm
</pre>
<p>Change the settings in <em>/etc/php5/fpm/php-fpm.conf</em></p>
<pre class="brush: plain; title: ; notranslate">
pid = /var/run/php5-fpm.pid
error_log = /var/log/php5-fpm.log
daemonize = yes
include=/etc/php5/fpm/pool.d/*.conf
</pre>
<p>Recommended settings in <em>/etc/php5/fpm/pool.d/www.conf</em></p>
<pre class="brush: plain; title: ; notranslate">
;listen = 127.0.0.1:9000
listen = /var/run/php5-fpm.sock

listen.owner = www-data
listen.group = www-data
listen.mode = 0666

user = www-data
group = www-data

php_flag[display_errors] = off
php_admin_value[error_log] = /var/log/fpm-php.www.log
php_admin_flag[log_errors] = on
php_admin_value[error_reporting] = 0
php_admin_value[memory_limit] = 128M
php_admin_value[date.timezone] = Europe/London
</pre>
<p>Start/Restart Nginx and PHP5-FPM and voila</p>
<pre class="brush: plain; title: ; notranslate">
/etc/init.d/nginx restart
/etc/init.d/php5-fpm start
</pre>
<p>Everything should be running smoothly. Enjoy your new faster server!</p>
<p>Thanks to the people below who wrote about it first.</p>
<ul>
<li><a href="http://www.kutukupret.com/2010/10/26/how-to-make-php-fpm-listen-on-both-tcp-and-unix-socket/" target="_blank">http://www.kutukupret.com/2010/10/26/how-to-make-php-fpm-listen-on-both-tcp-and-unix-socket/</a></li>
<li><a href="http://www.kutukupret.com/2010/10/26/how-to-make-php-fpm-listen-on-both-tcp-and-unix-socket/" target="_blank">http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian</a></li>
<li><a href="http://norbyit.se/blog/2011/01/configuring-php-fpm/" target="_blank">http://norbyit.se/blog/2011/01/configuring-php-fpm/</a></li>
<li><a href="http://andreas-lehr.com/blog/archives/491-nginx-wordpress-php-fpm-on-debian-squeeze.html" target="_blank">http://andreas-lehr.com/blog/archives/491-nginx-wordpress-php-fpm-on-debian-squeeze.html</a></li>
<li><a href="http://www.webhostingtalk.com/showthread.php?t=1025286" target="_blank">http://www.webhostingtalk.com/showthread.php?t=1025286</a></li>
<li><a href="http://www.kutukupret.com/2010/10/26/how-to-make-php-fpm-listen-on-both-tcp-and-unix-socket/" target="_blank">http://www.kutukupret.com/2010/10/26/how-to-make-php-fpm-listen-on-both-tcp-and-unix-socket/</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/09/solved-debian-squeeze-nginx-php5-fpm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Minor VPS Tasks</title>
		<link>http://www.jasonashdown.co.uk/2011/09/tasks/</link>
		<comments>http://www.jasonashdown.co.uk/2011/09/tasks/#comments</comments>
		<pubDate>Mon, 19 Sep 2011 14:04:29 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=226</guid>
		<description><![CDATA[My next task for my web server is to: * Install PHP-FPM on Debian (tutorial link) * Install WebDav for Nginx &#8211; so I can download the repositories on port 80. Most of this should be hassle free. I shall &#8230; <a href="http://www.jasonashdown.co.uk/2011/09/tasks/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>My next task for my web server is to:</p>
<p>* Install PHP-FPM on Debian (<a href="http://www.howtoforge.com/installing-php-5.3-nginx-and-php-fpm-on-ubuntu-debian" target="_blank">tutorial link</a>)<br />
* Install WebDav for Nginx &#8211; so I can download the repositories on port 80.</p>
<p>Most of this should be hassle free. I shall let you know how I get on.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/09/tasks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing the latest Nginx on Debian Squeeze</title>
		<link>http://www.jasonashdown.co.uk/2011/09/installing-the-latest-nginx-on-debian-squeeze/</link>
		<comments>http://www.jasonashdown.co.uk/2011/09/installing-the-latest-nginx-on-debian-squeeze/#comments</comments>
		<pubDate>Sat, 17 Sep 2011 21:32:23 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Waffle News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[Apache]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[Nginx]]></category>
		<category><![CDATA[VPS]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=224</guid>
		<description><![CDATA[I just updated my Nginx on Debian 6 (Squeeze) from 0.7.x.x to 1.0.6 by altering my source list. Edit your /etc/apt/sources.list to include the following lines: Then run `apt-get update` and `apt-get upgrade`. Follow the on-screen instructions and BOOM! You&#8217;re &#8230; <a href="http://www.jasonashdown.co.uk/2011/09/installing-the-latest-nginx-on-debian-squeeze/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I just updated my Nginx on Debian 6 (Squeeze) from 0.7.x.x to 1.0.6 by altering my source list.</p>
<p>Edit your /etc/apt/sources.list to include the following lines:</p>
<pre class="brush: plain; title: ; notranslate">
deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx
</pre>
<p>Then run `apt-get update` and `apt-get upgrade`.</p>
<p>Follow the on-screen instructions and BOOM! You&#8217;re running the latest version of Nginx! My preference is to use Nginx these days instead of Apache2 purely because of the extra performance you gain out of it. Much higher requests per second (rpp).</p>
<p>I highly recommend trying it if you haven&#8217;t already.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/09/installing-the-latest-nginx-on-debian-squeeze/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating your own WordPress theme</title>
		<link>http://www.jasonashdown.co.uk/2011/05/creating-your-own-wordpress-theme/</link>
		<comments>http://www.jasonashdown.co.uk/2011/05/creating-your-own-wordpress-theme/#comments</comments>
		<pubDate>Tue, 10 May 2011 13:25:44 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Web Development]]></category>
		<category><![CDATA[WordPress]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=114</guid>
		<description><![CDATA[This is a quick mention. If you build a WordPress theme, make sure it works with all types of content. I suggest using Sample Posts to highlight any styling issues in your theme.]]></description>
			<content:encoded><![CDATA[<p>This is a quick mention. If you build a WordPress theme, make sure it works with all types of content. I suggest using <a href="http://wpcandy.com/made/the-sample-post-collection">Sample Posts</a> to highlight any styling issues in your theme.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/05/creating-your-own-wordpress-theme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Facebook change their Applications Policy &amp; Kill FBML</title>
		<link>http://www.jasonashdown.co.uk/2011/05/facebook-change-their-applications-policy-kill-fbml/</link>
		<comments>http://www.jasonashdown.co.uk/2011/05/facebook-change-their-applications-policy-kill-fbml/#comments</comments>
		<pubDate>Tue, 03 May 2011 13:36:12 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[Facebook Fan Pages]]></category>
		<category><![CDATA[FBML]]></category>
		<category><![CDATA[SSL]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=108</guid>
		<description><![CDATA[FBML is DEAD, LONG LIVE FBML&#8230; Not surprising news but Facebook has finally retired FBML on 11th March 2011. What does that mean? Basically it means that you no longer have to use the &#8220;Static FBML page&#8221; application to create &#8230; <a href="http://www.jasonashdown.co.uk/2011/05/facebook-change-their-applications-policy-kill-fbml/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em><strong><a href="http://www.jasonashdown.co.uk/wp-content/uploads/2011/05/facebook-pages.jpg"><img class="alignleft size-full wp-image-118" title="facebook-pages" src="http://www.jasonashdown.co.uk/wp-content/uploads/2011/05/facebook-pages.jpg" alt="" width="200" height="258" /></a>FBML is DEAD, LONG LIVE FBML&#8230;</strong></em></p>
<p>Not surprising news but Facebook has finally retired <strong>FBML</strong> on <a href="http://developers.facebook.com/blog/post/462/">11th March 2011</a>.</p>
<p>What does that mean? Basically it means that you no longer have to use the &#8220;Static FBML page&#8221; application to create new pages, instead you are now allowed to use iFrames!</p>
<p><strong>*Party poppers and loud cheers!*</strong></p>
<p>Unfortunately, this exciting news turns sour pretty quickly&#8230;</p>
<p>With this new ability there are some major roadblocks, mainly for non-tech savy users.</p>
<ol>
<li>iFrames must be able to serve your own web pages from a web host.</li>
<li>Any pages that you cannot serve with SSL will bring up a <a title="User notice, switch to Non Https connection" href="https://developers.facebook.com/attachment/Screen%20shot%202011-04-15%20at%203.29.12%20PM.png">user message</a> which will potentially put off visitors, as explained in their blog post about <a href="https://developers.facebook.com/blog/post/491">users running Facebook over HTTPS</a>.</li>
<li>Applications. You can only create these iFrame pages with Facebook Applications. For some this will be a real challenge, even as a Web Developer, I still find them difficult.</li>
</ol>
<h3>Making your pages with Facebook Applications</h3>
<p>Going back to my previous point. Admins on Facebook will now have to create their own Applications so they can display new pages on their <a href="https://www.facebook.com/notes/facebook-pages/an-upgrade-for-pages/10150090729064822">Fan Pages</a>.</p>
<p>There are several difficult hurdles to deal with:</p>
<ol>
<li>Applications are usually created by Facebook Developers, see <a href="http://www.facebook.com/developers">http://www.facebook.com/developers</a></li>
<li>Facebook have changed their Applications policy. You <span style="text-decoration: underline;">must</span> now register a valid <em>Credit Card</em> or <em>Mobile Number</em>. Paranoid? I am.</li>
<li>Non-tech savy users who innocently created their fan pages will have no idea how to manage their Applications.</li>
<li>Documentation and examples are scarce for developing these new iFrame pages. FBML used to allow you to tap into Facebook services pretty easily but now you have to familiarise yourself with a combination of <a href="https://developers.facebook.com/docs/authentication/signed_request/">Signed Requests</a> in PHP and the <a href="https://developers.facebook.com/docs/reference/javascript/">JavaScript SDK</a> aka the <em>Facebook API</em>.</li>
</ol>
<p>Basically if you can conquer those requirements, you will be allowed to continue using Facebook pages. In summary, your shopping list should include:</p>
<ol>
<li>Web Hosting</li>
<li>SSL Hosting to serve your web pages on HTTPS (expensive)</li>
<li>A valid Credit Card or Mobile Number (sorry script kiddies)</li>
<li>A fearless attitude to creating, managing your own Applications and wading through <a href="https://developers.facebook.com/docs/advancedtopics/">poorly documented examples</a> for endless hours, <a href="http://www.jasonashdown.co.uk/wp-content/uploads/2011/05/birth_of_a_trucker.jpg">have fun</a>.</li>
<li>A knowledge of PHP and JavaScript. You prefer a different web language? Tough. Facebook is biased and wants you to use <a href="https://github.com/facebook/php-sdk/">PHP SDK</a> for now.</li>
</ol>
<p>Hopefully I summed up everything nicely for you. Good luck.</p>
<p><strong>UPDATE:</strong> 2nd June 2011<br />
As always, Facebook has quietly made some changes (without really telling anyone).</p>
<ul>
<li>You can use your mobile number to verify yourself as a Facebook Developer, allowing you to add new Applications.</li>
<li>Released <a href="https://developers.facebook.com/blog/post/503/">SDK v3.0.0</a> which is an upgrade to the last version of SDK v2.2.x</li>
<li>Introduce &#8220;Facebook Credits&#8221; available to all Applications (mostly for games). Virtual currency that Facebook wants you to use. Can use Paypal or Credit Cards to make transactions.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/05/facebook-change-their-applications-policy-kill-fbml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Create your first Twitter App with Zend Framework</title>
		<link>http://www.jasonashdown.co.uk/2011/02/create-your-first-twitter-app/</link>
		<comments>http://www.jasonashdown.co.uk/2011/02/create-your-first-twitter-app/#comments</comments>
		<pubDate>Mon, 28 Feb 2011 23:50:46 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[Twitter]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=92</guid>
		<description><![CDATA[I finally got round to writing my first Twitter App using Zend OAuth. Here are my tips and explanation to getting your Twitter App up and running. Getting Started Register at http://dev.twitter.com/ and create your first App. You can change &#8230; <a href="http://www.jasonashdown.co.uk/2011/02/create-your-first-twitter-app/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I finally got round to writing my first <a href="http://dev.twitter.com/">Twitter App</a> using <a href="http://framework.zend.com/manual/en/zend.oauth.introduction.html">Zend OAuth</a>.</p>
<p>Here are my tips and explanation to getting your Twitter App up and running.</p>
<h3>Getting Started</h3>
<p>Register at <a href="http://dev.twitter.com/">http://dev.twitter.com/</a> and create your first <em>App</em>. You can change all the settings at any time, so don&#8217;t worry about getting them wrong.</p>
<h3>Setting Up the Twitter App</h3>
<p>Authorise a <em>Domain URL</em>, you can even use localhost for testing purposes.</p>
<p>It is <span style="text-decoration: underline;">important</span> you set the <em>Callback URL</em> otherwise you can&#8217;t use the <em>Browser App</em> option and your OAuth will <strong>fail</strong>.</p>
<p>Quickly access your App&#8217;s details at <a href="http://twitter.com/oauth">http://twitter.com/oauth</a>.</p>
<p>When coding with Zend OAuth, read the <a href="http://framework.zend.com/manual/en/zend.oauth.introduction.html">documentation</a> carefully!<br />
It has <em>everything</em> you need.</p>
<h3>My Mistake</h3>
<p>I did not understand how to grab the <em>Access Token</em>. Reason? It&#8217;s a two part process. Requesting, then <em>Receiving</em>.</p>
<h3>The Code</h3>
<p>Here is a working example of a <em>Request Token</em> with <a href="http://framework.zend.com/manual/en/zend.oauth.introduction.html">Zend OAuth</a> and <em>your</em> Twitter App&#8217;s <em>Consumer Key</em> and <em>Consumer Secret</em>.</p>
<p>(Note the keys used are the ones from Zend&#8217;s Article)</p>
<pre class="brush: php; title: ; notranslate">
$config = array(
'callbackUrl' =&gt; 'http://example.com/callback.php',
'siteUrl' =&gt; 'http://twitter.com/oauth',
'consumerKey' =&gt; 'gg3DsFTW9OU9eWPnbuPzQ',
'consumerSecret' =&gt; 'tFB0fyWLSMf74lkEu9FTyoHXcazOWpbrAjTCCK48A'
);
$consumer = new Zend_Oauth_Consumer($config);

// fetch a request token
$token = $consumer-&gt;getRequestToken();

// persist the token to storage
$_SESSION['TWITTER_REQUEST_TOKEN'] = serialize($token);

// redirect the user
$consumer-&gt;redirect();
</pre>
<h3>Steps you must do:</h3>
<ol>
<li>Use the <em>Callback URL</em> to receive the <em>Access Token</em></li>
<li>Store the <em>Request Token</em> in a $_SESSION</li>
<li>Follow the <a href="http://framework.zend.com/manual/en/zend.oauth.introduction.html"><em>getAccessToken()</em></a> example and store this in a $_SESSION or Database (recommended)</li>
</ol>
<h3>Why store the <em>Access Token</em> in a Database?</h3>
<p>The best thing about the <em>Access Token</em> is that once you&#8217;ve successfully requested one, it never expires!</p>
<p>So save the hassle of requesting a new token and use it throughout your website. Great thing is, it can&#8217;t be compromised!</p>
<p>Without the the <em>Consumer Key</em> and <em>Consumer Secret</em>, you can&#8217;t hijack the users account for malicious purposes.</p>
<p>Please leave a comment if you want me to write another article about how to implement the example into your scripts or maybe I&#8217;ll update this one.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2011/02/create-your-first-twitter-app/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Weekly Round Up: Issue 1</title>
		<link>http://www.jasonashdown.co.uk/2010/02/weekly-round-up-issue-1/</link>
		<comments>http://www.jasonashdown.co.uk/2010/02/weekly-round-up-issue-1/#comments</comments>
		<pubDate>Thu, 04 Feb 2010 12:34:33 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Tech News]]></category>
		<category><![CDATA[Web Development]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[IE8]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/?p=69</guid>
		<description><![CDATA[I often hunt around on the internet for the latest information to do with Web Development. Most of the time it goes to my Twitter but I thought it would be great if I could start logging a collection of &#8230; <a href="http://www.jasonashdown.co.uk/2010/02/weekly-round-up-issue-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I often hunt around on the internet for the latest information to do with Web Development. Most of the time it goes to my Twitter but I thought it would be great if I could start logging a collection of the best ones I read.</p>
<p>So if you enjoy keeping up with the latest trends, I hope you enjoy my information bites!</p>
<p>HTML5 won&#8217;t save the web<br />
<a href="http://gizmodo.com/5461711/giz-explains-why-html5-isnt-going-to-save-the-internet">http://gizmodo.com/5461711/giz-explains-why-html5-isnt-going-to-save-the-internet</a></p>
<p>Facebook develop faster PHP<br />
<a href="http://www.neowin.net/news/facebook-unveils-hiphop-for-php-039source-code-transformer039">http://www.neowin.net/news/facebook-unveils-hiphop-for-php-039source-code-transformer039</a></p>
<p>IE8 now &#8220;most popular&#8221; version of IE<br />
<a href="http://www.neowin.net/news/ie8-is-now-the-world039s-most-used-browser">http://www.neowin.net/news/ie8-is-now-the-world039s-most-used-browser</a></p>
<p>Zend Framework 1.10 Released (and now with versioned documentation!)<br />
<a href="http://devzone.zend.com/article/11727-Zend-Framework-1.10.0-STABLE-Released">http://devzone.zend.com/article/11727-Zend-Framework-1.10.0-STABLE-Released</a></p>
<p>PHP hates integers (64 bit)<br />
<a href="http://www.mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability/">http://www.mysqlperformanceblog.com/2007/03/27/integers-in-php-running-with-scissors-and-portability/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2010/02/weekly-round-up-issue-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Google Chrome: Web forms, empty action won&#8217;t work!</title>
		<link>http://www.jasonashdown.co.uk/2009/07/google-chrome-web-forms-empty-action-wont-work/</link>
		<comments>http://www.jasonashdown.co.uk/2009/07/google-chrome-web-forms-empty-action-wont-work/#comments</comments>
		<pubDate>Tue, 21 Jul 2009 12:09:56 +0000</pubDate>
		<dc:creator>Jason Ashdown</dc:creator>
				<category><![CDATA[Web Development]]></category>

		<guid isPermaLink="false">http://www.jasonashdown.co.uk/2009/07/google-chrome-web-forms-empty-action-wont-work/</guid>
		<description><![CDATA[After doing some testing, I was wondering why the hell my form wasn&#8217;t submitting any POST data in Google Chrome. It turns out that Google Chrome will not &#8220;post&#8221; to a form when the &#8220;action&#8221; destination is left blank. Using &#8230; <a href="http://www.jasonashdown.co.uk/2009/07/google-chrome-web-forms-empty-action-wont-work/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>After doing some testing, I was wondering why the hell my form wasn&#8217;t submitting any POST data in Google Chrome.</p>
<p>It turns out that Google Chrome will not &#8220;post&#8221; to a form when the &#8220;action&#8221; destination is left blank.</p>
<p>Using a relative path doesn&#8217;t seem to work, it has to be absolute&#8230; I can understand why they would do this but but it&#8217;s the only browser I have come across that behaves in this fashion. Normally other browsers would allow the &#8220;action&#8221; property to be blank and still allow submission of the form.</p>
<p>It&#8217;s good practise but annoying!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.jasonashdown.co.uk/2009/07/google-chrome-web-forms-empty-action-wont-work/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

