<?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>Richard Knop&#039;s Zend Framework Blog &#187; Twitter API</title>
	<atom:link href="http://blog.richardknop.com/tag/twitter-api/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.richardknop.com</link>
	<description>Zend Framework, PHP, MySQL, jQuery, JavaScript, AJAX, SEO, E-commerce and more</description>
	<lastBuildDate>Mon, 06 Sep 2010 15:49:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Zend_Service_Twitter</title>
		<link>http://blog.richardknop.com/2009/05/zend_service_twitter/</link>
		<comments>http://blog.richardknop.com/2009/05/zend_service_twitter/#comments</comments>
		<pubDate>Sun, 31 May 2009 20:43:43 +0000</pubDate>
		<dc:creator>Richard Knop</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Twitter API]]></category>
		<category><![CDATA[Zend_Service_Twitter]]></category>

		<guid isPermaLink="false">http://blog.richardknop.com/?p=261</guid>
		<description><![CDATA[In the previous post (Working with Twitter API in PHP) I wrote about how to use cURL to communicate with the Twitter API. There is an easier way when you&#8217;re using Zend Framework though &#8211; Zend_Service_Twitter. Bellow is just a simple example usage. In the controller: $twitter = new Zend_Service_Twitter&#40;&#39;your_username&#39;, &#39;your_password&#39;&#41;; // return last 20 [...]]]></description>
			<content:encoded><![CDATA[<p>In the previous post (<a href="http://blog.richardknop.com/2009/05/working-with-twitter-api-in-php/">Working with Twitter API in PHP</a>) I wrote about how to use cURL to communicate with the Twitter API. There is an easier way when you&#8217;re using Zend Framework though &#8211; <a href="http://framework.zend.com/manual/en/zend.service.twitter.html">Zend_Service_Twitter</a>. Bellow is just a simple example usage.</p>
<p>In the controller:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$twitter</span> <span class="sy0">=</span> <span class="kw2">new</span> Zend_Service_Twitter<span class="br0">&#40;</span><span class="st0">&#39;your_username&#39;</span><span class="sy0">,</span> <span class="st0">&#39;your_password&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// return last 20 statuses from a user</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">view</span><span class="sy0">-&gt;</span><span class="me1">xml</span> <span class="sy0">=</span> <span class="re1">$twitter</span><span class="sy0">-&gt;</span><span class="me1">status</span><span class="sy0">-&gt;</span><span class="me1">userTimeline</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>In the view (to print the last user&#8217;s status):</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="sy0">&lt;</span>p<span class="sy0">&gt;&lt;</span>?php <span class="kw3">echo</span> <span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">escape</span><span class="br0">&#40;</span><span class="re1">$this</span><span class="sy0">-&gt;</span><span class="me1">xml</span><span class="sy0">-&gt;</span><span class="me1">status</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">-&gt;</span><span class="me1">text</span><span class="br0">&#41;</span><span class="sy0">;</span> ?<span class="sy0">&gt;&lt;/</span>p<span class="sy0">&gt;</span></div>
</li>
</ol>
</div>
<p>For other availale methods read the whole documentation. Also don&#8217;t forget to take a look at other APIs the Zend Framework can work with natively (including Akismet, Amazon, Del.icio.us, Flickr, Yahoo and others) <a href="http://framework.zend.com/manual/en/zend.service.html">here</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.richardknop.com/2009/05/zend_service_twitter/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Working with Twitter API in PHP</title>
		<link>http://blog.richardknop.com/2009/05/working-with-twitter-api-in-php/</link>
		<comments>http://blog.richardknop.com/2009/05/working-with-twitter-api-in-php/#comments</comments>
		<pubDate>Fri, 29 May 2009 21:37:55 +0000</pubDate>
		<dc:creator>Richard Knop</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[cURL]]></category>
		<category><![CDATA[Twitter API]]></category>

		<guid isPermaLink="false">http://blog.richardknop.com/?p=242</guid>
		<description><![CDATA[Twitter is one of the fastest growing social networks around and many people want to integrate it (in different ways) on their website. Fortunately, the Twitter API is well documented and easy to use (it is based on the HTTP protocol and everything is done through GET or POST requests). PHP&#8217;s cURL extension is an [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://twitter.com/">Twitter</a> is one of the fastest growing social networks around and many people want to integrate it (in different ways) on their website. Fortunately, the <a href="http://apiwiki.twitter.com/">Twitter API</a> is well documented and easy to use (it is based on the HTTP protocol and everything is done through GET  or POST requests).</p>
<p>PHP&#8217;s <a href="http://sk.php.net/curl">cURL</a> extension is an ideal tool for working with the twitter API. I will show you few examples of most common twitter related tasks.</p>
<h2>Getting recent statuses from an authenticating user</h2>
<p>URI: <em>http://twitter.com/statuses/user_timeline.format</em></p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$username</span> <span class="sy0">=</span> <span class="st0">&#39;your_username&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$password</span> <span class="sy0">=</span> <span class="st0">&#39;your_password&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// initialize a cURL session</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$ch</span> <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="st0">&#39;http://twitter.com/statuses/user_timeline.xml?screen_name=&#39;</span> <span class="sy0">.</span> <span class="re1">$username</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// wait 2 miliseconds for connection</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_CONNECTTIMEOUT<span class="sy0">,</span> <span class="nu0">2</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do output to curl_exec()</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// username and password</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_USERPWD<span class="sy0">,</span> <span class="re1">$username</span> <span class="sy0">.</span> <span class="st0">&#39;:&#39;</span> <span class="sy0">.</span> <span class="re1">$password</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// execute the cURL session and use its output to create a new SimpleXML object</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$xml</span> <span class="sy0">=</span> <span class="kw2">new</span> SimpleXMLElement<span class="br0">&#40;</span>curl_exec<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// close the session to free up system resources</span></div>
</li>
<li class="li1">
<div class="de1">curl_close<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>The $xml object contains the last 20 statuses of the specified user. To print the last status:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw3">echo</span> <span class="re1">$xml</span><span class="sy0">-&gt;</span><span class="me1">status</span><span class="br0">&#91;</span><span class="nu0">0</span><span class="br0">&#93;</span><span class="sy0">-&gt;</span><span class="me1">text</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<p>Or you can iterate through the object and print all statuses:</p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="kw1">foreach</span> <span class="br0">&#40;</span><span class="re1">$xml</span><span class="sy0">-&gt;</span><span class="me1">status</span> <span class="kw1">as</span> <span class="re1">$status</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp; &nbsp; <span class="kw3">echo</span> <span class="re1">$status</span><span class="sy0">-&gt;</span><span class="me1">text</span><span class="sy0">,</span> <span class="st0">&#39;&lt;br /&gt;&#39;</span><span class="sy0">,</span> <span class="st0">&quot;<span class="es0">\n</span>&quot;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="br0">&#125;</span></div>
</li>
</ol>
</div>
<h2>Posting a status</h2>
<p>URI: <em>http://twitter.com/statuses/update.format</em></p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$username</span> <span class="sy0">=</span> <span class="st0">&#39;your_username&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$password</span> <span class="sy0">=</span> <span class="st0">&#39;your_password&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$status</span> <span class="sy0">=</span> <span class="st0">&#39;your status (max 140 characters)&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// initialize a cURL session</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$ch</span> <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="st0">&#39;http://twitter.com/statuses/update.xml&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// wait 2 miliseconds for connection</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_CONNECTTIMEOUT<span class="sy0">,</span> <span class="nu0">2</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do not output to curl_exec()</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do a regular HTTP POST</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_POST<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// HTTP POST data</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_POSTFIELDS<span class="sy0">,</span> <span class="st0">&#39;status=&#39;</span> <span class="sy0">.</span> <span class="re1">$status</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// username and password</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_USERPWD<span class="sy0">,</span> <span class="re1">$username</span> <span class="sy0">.</span> <span class="st0">&#39;:&#39;</span> <span class="sy0">.</span> <span class="re1">$password</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// execute the cURL session</span></div>
</li>
<li class="li1">
<div class="de1">curl_exec<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// close the session to free up system resources</span></div>
</li>
<li class="li1">
<div class="de1">curl_close<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
<h2>Deleting a status</h2>
<p>URI: <em>http://twitter.com/statuses/destroy/id.format</em></p>
<div class="geshi no php">
<ol>
<li class="li1">
<div class="de1"><span class="re1">$username</span> <span class="sy0">=</span> <span class="st0">&#39;your_username&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$password</span> <span class="sy0">=</span> <span class="st0">&#39;your_password&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$id</span> <span class="sy0">=</span> <span class="st0">&#39;id of the status you want to delete&#39;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1">&nbsp;</div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// initialize a cURL session</span></div>
</li>
<li class="li1">
<div class="de1"><span class="re1">$ch</span> <span class="sy0">=</span> curl_init<span class="br0">&#40;</span><span class="st0">&#39;http://twitter.com/statuses/destroy/&#39;</span> <span class="sy0">.</span> <span class="re1">$id</span> <span class="sy0">.</span> <span class="st0">&#39;.xml&#39;</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// wait 2 miliseconds for connection</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_CONNECTTIMEOUT<span class="sy0">,</span> <span class="nu0">2</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do not output to curl_exec()</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_RETURNTRANSFER<span class="sy0">,</span> <span class="nu0">0</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// do a regular HTTP POST</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_POST<span class="sy0">,</span> <span class="nu0">1</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// username and password</span></div>
</li>
<li class="li1">
<div class="de1">curl_setopt<span class="br0">&#40;</span><span class="re1">$ch</span><span class="sy0">,</span> CURLOPT_USERPWD<span class="sy0">,</span> <span class="re1">$username</span> <span class="sy0">.</span> <span class="st0">&#39;:&#39;</span> <span class="sy0">.</span> <span class="re1">$password</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// execute the cURL session</span></div>
</li>
<li class="li1">
<div class="de1">curl_exec<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
<li class="li1">
<div class="de1"><span class="co1">// close the session to free up system resources</span></div>
</li>
<li class="li1">
<div class="de1">curl_close<span class="br0">&#40;</span><span class="re1">$ch</span><span class="br0">&#41;</span><span class="sy0">;</span></div>
</li>
</ol>
</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.richardknop.com/2009/05/working-with-twitter-api-in-php/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
