Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare a Scribd company logo
PHP, OAuth &
Web Services
   By James Broad
You will learn

• How to authenticate a request using
  OAuth
• How to use a PHP framework -
  CodeIgniter
• How to retrieve web services using YQL
Technologies covered

• SVN
• rsync
• PHP
• CodeIgniter
Project : Search
• Search a number of services using their
  Web Service API’s
  • Twitter
  • Flickr
  • Yahoo Search
  • Wikipedia
YQL
Yahoo Query Language
YQL Console
http://developer.yahoo.com/yql/console/
SWEET!
Now how do I make use of it?
Copy the generated
   URL and go
Nope. Soz, you need
  authentication
    In the flavour of OAuth
What is OAuth?
  I will attempt to explain
The problem


http://www.flickr.com/photos/fabricio/2354662901/   http://www.flickr.com/photos/borkazoid/3219646418/




             • http://adactio.com/journal/1357
One Solution - OAuth
OAuth Flow
Demonstration

• Manual 3 Leg OAuth process
 • http://carbonsilk.com/oauth/example/
    client.php
• Our example uses 2 Leg - no need for the
  user to leave the page but we only get
  access to public information.
Getting Started

• Getting our development environment set
  up
• Obtaining our application keys
• Covering the PHP code needed to run our
  application
Development
        Environment
• XAMPP - http://www.apachefriends.org/en/
  xampp.html
• CodeIgniter Framework
• OAuth Library
• CodeIgniter OAuth Classes
Installing CodeIgniter
svn checkout http://dev.ellislab.com/svn/CodeIgniter/trunk ~/
                    Sites/project_search
Configuring
          CodeIgniter
• Check it works http://localhost/
  project_search/
• Can we have pretty URLs? Please?
 • change system/applications/config/config.php
   • $config['index_page'] = quot;quot;;
 • Add .htaccess file
OAuth PHP Library

• svn co http://oauth.googlecode.com/svn/
  code/php ~/Sites/oauth/
• Copy OAuth.php to CodeIgniter Library -
  system/applications/libraries/
• Change line 369 of OAuth.php - Realm bug.
  Add realm as a parameter
YQL / OAuth Classes
I have been nice enough to pre-bake some classes for
                        you
YQL / OAuth Classes
• system/application/libraries/yql_lib.php
 • Copy & Paste from http://gist.github.com/
    57536
• system/application/controllers/yql.php
 • Copy & Paste from http://gist.github.com/
    57535
Obtaining Application
         Keys
• Go to https://developer.yahoo.com/
  dashboard/ and register a new OAuth
  application
• One I made earlier: https://
  developer.yahoo.com/dashboard/
  success.html?key=xxx
Configuring Our App


• Open system/application/libraries/yql_lib.php
 • Add your OAuth key and secret
Upload

• We need to upload to the domain
  registered earlier for authentication
• rsync -r --progress ~/Sites/project_search/
  you@yoursite.com:~/public_html/
  project_search/
Review our framework
        code
 We look behind what has been installed - The
    CodeIgniter Libraries and controllers
Live Code Time
Adding a new query - Scraping the Finance news top
  stories and presenting them using a view and a
                    controller
Thanks!
twitter.com/kulor
 carbonsilk.com

More Related Content

PHP, OAuth, Web Services and YQL