<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Sat, 25 May 2013 02:16:53 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Lorenzo Alberton: Updated Kafka PHP client library]]></title>
      <guid>http://www.phpdeveloper.org/news/18489</guid>
      <link>http://www.phpdeveloper.org/news/18489</link>
      <description><![CDATA[<p>
<i>Lorenzo Alberton</i> has a new post with an update about a library he's been working on to <a href="http://www.alberton.info/kafka_07_php_client_library.html">interface with Apache's Kafka system</a>, "a persistent, distributed, high-throughput publish-subscribe messaging system".
</p>
<blockquote>
Over a year ago I sort of reverse-engineered the protocol, and published a first rudimental library to produce and consume messages with version 0.05. Since then, the Kafka project has evolved a lot, moving from the LinkedIN repositories to the <a href="http://www.alberton.info/kafka_apache_incubator.html">Apache Incubator</a>, gaining traction, committers, features. The protocol has changed slightly too, so the old library doesn't work anymore with the new version (0.6+).
</blockquote>
<p>
<a href="https://github.com/quipo/kafka/tree/master/clients/php">The library</a> has gotten lots of new features in this update including gzip compression support, custom exception handling and better connection handling. He includes some sample code in the post showing how to create both the Producer and Consumer for the messages (and one for working with <a href="http://zookeeper.apache.org/">Zookeeper</a>).
</p>]]></description>
      <pubDate>Tue, 18 Sep 2012 11:58:50 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell' Blog: PHP OAuth Provider: Access Tokens]]></title>
      <guid>http://www.phpdeveloper.org/news/16788</guid>
      <link>http://www.phpdeveloper.org/news/16788</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has posted the latest in her look at OAuth in PHP to her blog today, an <a href="http://www.lornajane.net/posts/2011/php-oauth-provider-access-tokens">introduction to access tokens</a> - generating and handling them in your application.
</p>
<blockquote>
I've been working with <a href="http://oauth.net/">OAuth</a>, as a provider and consumer, and there isn't a lot of documentation around it for PHP at the moment so I thought I'd share my experience in this series of articles. [...] This entry follows on from the ones about the <a href="http://www.lornajane.net/posts/2011/PHP-OAuth-Provider-Initial-Requirements">initial requirements</a>, <a href="http://www.lornajane.net/posts/2011/PHP-OAuth-Provider-Request-Tokens">how to how to handle request tokens</a>, and <a href="http://www.lornajane.net/posts/2011/php-oauth-provider-authenticate-user">authenticating users</a>.
</blockquote>
<p>
In this latest post, she talks about the three different types of tokens - consumer, request and verififier - and how to use them to locate a user in your app's users. Her code validates the request token and verifier against the database and, if successful, inserts the rest of the token information for the user.
</p>]]></description>
      <pubDate>Tue, 30 Aug 2011 08:28:04 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Till Klampaeckel's Blog: Yahoo: oauth_problem=consumer_key_rejected]]></title>
      <guid>http://www.phpdeveloper.org/news/16370</guid>
      <link>http://www.phpdeveloper.org/news/16370</link>
      <description><![CDATA[<p>
During some of his work with the Yahoo! Search Boss API, <i>Till Klampaeckel</i> <a href="http://till.klampaeckel.de/blog/archives/153-Yahoo-oauth_problemconsumer_key_rejected.html">came across an issue</a> with the OAuth connection causing an error of "oauth_problem=consumer_key_rejected" with his Zend Framework-based application.
</p>
<blockquote>
The above process doesn't even take five minutes, but then I spent eight hours figuring out what oauth_problem=consumer_key_rejected means. Spent a couple hours googling, reading bug reports and even posted to the Yahoo! group associated with Search Boss. To cut to the chase: When you create a new project, it's not sufficient to just activate "Yahoo! Search Boss" (and provide billing details and so on).
</blockquote>
<p>
His real issue was because of how Yahoo! apparently creates (or when they create) the OAuth connection information for you. He gives a two line example of how the Zend Framework can grab a OAuth token with Zend_Oauth. He goes on to talk about the OAuth implementation in PHP and how it's "pretty sucky" and that there's not much documentation around to help. He got things working, though, and included the sample code he used to make the connection - pulling the info from a an oauth.ini file, pushing the authentication parameters to the remote side, grabbing the headers and making the HTTP request with the OAuth information in place.
</p>]]></description>
      <pubDate>Mon, 23 May 2011 09:29:41 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Lorna Mitchell's Blog: PHP OAuth Provider: Initial Requirements]]></title>
      <guid>http://www.phpdeveloper.org/news/16319</guid>
      <link>http://www.phpdeveloper.org/news/16319</link>
      <description><![CDATA[<p>
<i>Lorna Mitchell</i> has a quick post related to some of the OAuth work she's done on both sides, consumer and provider. <a href="http://www.lornajane.net/posts/2011/PHP-OAuth-Provider-Initial-Requirements">This latest post</a> relates to the OAuth pages and endpoints that are needed as a part of the authentication process.
</p>
<blockquote>
This article uses the <a href="http://pecl.php.net/oauth">pecl_oauth extension</a> and builds on <a href="http://toys.lerdorf.com/archives/55-Writing-an-OAuth-Provider-Service.html">Rasmus' OAuth Provider</a> post. [...] OAuth has a little more baggage with it than just passing a username and password to an API. 
</blockquote>
<p>
She lists the five things you'll need for your service and talks a bit about the registration process and how the consumer key/consumer secret keys are generated. There's no strict definition on them, so her example uses a combination of <a href="http://php.net/sha1">sha1</a>, <a href="http://php.net/mt_rand">mt_rand</a> and <a href="http://php.net/substr">substr</a> to get the job done. She also includes a sample "consumers" table for your reference.
</p>]]></description>
      <pubDate>Tue, 10 May 2011 10:04:59 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Ibuildings techPortal:  DPCRadio: Web services for consumer devices]]></title>
      <guid>http://www.phpdeveloper.org/news/15084</guid>
      <link>http://www.phpdeveloper.org/news/15084</link>
      <description><![CDATA[<p>
On the Ibuildings techPortal there's <a href="http://techportal.ibuildings.com/2010/09/07/web-services-for-consumer-devices/">a new post</a> with the latest episode in their DPCRadio series (as recorded at this past <a href="http://phpconference.nl">Dutch PHP Conference</a>) - <i>Melanie Rhianna Lewis'</i> talk on web services and consumer devices.
</p>
<blockquote>
A web service is an API provided by a site that allows a remote application to access data and use functionality without having to 'act like a web browser'. [...] The talk will describe how a web service targeted at consumer devices can be implemented. It will look at the different methods of calling remote functionality such as SOAP, XML-RPC, JSON and restful services. It will also consider the limitations of consumer devices, memory restrictions, communications bandwidth restrictions, and so on that have to be considered when designing a web service aimed at consumer devices. Finally it will have a brief look at how to make a service secure.
</blockquote>
<p>
You can find the slides for the session <a href="http://www.cyberspice.org.uk/downloads/%20WebServicesForConsumerDevices-20100612.pdf">here</a> and you can either listen to the episode through the <a href="http://techportal.ibuildings.com/2010/09/07/web-services-for-consumer-devices/">in-page player</a> or buy <a href="http://techportal.ibuildings.com/wp-content/uploads/audio/dpcradio/2010_004.mp3">downloading the mp3</a> directly.
</p>
]]></description>
      <pubDate>Tue, 07 Sep 2010 07:18:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: Google roll out OAuth Authorisation to all Google Data APIs]]></title>
      <guid>http://www.phpdeveloper.org/news/10524</guid>
      <link>http://www.phpdeveloper.org/news/10524</link>
      <description><![CDATA[<p>
<i>Padraic Brady</i> has <a href="http://blog.astrumfutura.com/archives/385-Google-roll-out-OAuth-Authorisation-to-all-Google-Data-APIs.html">posted about</a> a new inclusion that Google has announced will be included in the authentication methods for their APIs - OAuth.
</p>
<blockquote>
The Google Data API support comes with a few gotchas. Its documentation show a clear preference for using GET instead of POST, though the Google OAuth server does appear to natively support POST requests for everything with the exception that it has a small bug which interprets an empty POST request body as a sort of phantom empty parameter.
</blockquote>
<p>
He notes that <a href="http://svn.astrumfutura.org/zendframework/trunk">the library</a> he's been working on (and submitted to both the Zend Framework and PEAR) it up to the 0.0.3 release including functionality marked as beta for the Consumer portion.
</p>]]></description>
      <pubDate>Tue, 01 Jul 2008 14:38:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Padraic Brady's Blog: OpenID In PHP PEAR: Proposed!]]></title>
      <guid>http://www.phpdeveloper.org/news/8337</guid>
      <link>http://www.phpdeveloper.org/news/8337</link>
      <description><![CDATA[<p>
<I>Padraic Brady</i> has an announcement posted to his blog today - his OpenID PEAR has <a href="http://blog.astrumfutura.com/archives/303-OpenID-In-PHP-PEAR-Proposed!.html">officially been proposed</a> to the PEAR group for consideration.
</p>
<blockquote>
Yes, my OpenID 2.0 PHP5 Consumer has finally been proposed to PEAR. This brings the OpenID fanaticism on PEAR to four packages: OpenID_Consumer, Services_Yadis, Crypt_HMAC2, Crypt_DiffieHellman.
</blockquote>
<p>
He'll <a href="http://blog.astrumfutura.com/archives/303-OpenID-In-PHP-PEAR-Proposed!.html">be working</a> to get the code "further up to par" including Nonce validation, more consistent error reporting and other operation modes (like check_immediate). He's also included a screencast in the post for those not familiar with OpenID to get their first dose.
</p>]]></description>
      <pubDate>Thu, 26 Jul 2007 11:18:00 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Pádraic Brady's Blog: OpenID for PEAR: Services_Yadis proposed]]></title>
      <guid>http://www.phpdeveloper.org/news/8249</guid>
      <link>http://www.phpdeveloper.org/news/8249</link>
      <description><![CDATA[<p>
<i>Pádraic Brady</i> notes in <a href="http://blog.astrumfutura.com/archives/298-OpenID-for-PEAR-Services_Yadis-proposed.html">a new post</a> today that his <a href="http://pear.php.net/pepr/pepr-proposal-show.php?id=499">Services_Yadis</a> package has been official proposed to the PEAR group:
</p>
<blockquote>
This provides a PHP5 implementation of the Yadis Specification 1.0 a requirement of the OpenID Authentication 2.0 Specification. There are way too many specifications out there! The proposal is a reflection of February's <a href="http://framework.zend.com/wiki/pages/viewpage.action?pageId=20369">"Zend_Service_Yadis" proposal</a> to the Zend Framework. The main differences (beside the PEARification) were fixing the main bugs the ZF sample code had.
</blockquote>
<p>
He also mentions his <a href="http://blog.astrumfutura.com/archives/298-OpenID-for-PEAR-Services_Yadis-proposed.html">next proposal</a> - to create an OpenID Consumer package.
</p>]]></description>
      <pubDate>Mon, 16 Jul 2007 10:26:00 -0500</pubDate>
    </item>
  </channel>
</rss>
