Download - Integrating WordPress With Web APIs
![Page 1: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/1.jpg)
Integrating WordPressWith Web APIs
Randy Hoyt
![Page 2: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/2.jpg)
#wcmia @randyhoyt@randyhoyt
Randy Hoyt randyhoyt.com
@randyhoyt
Presentation randyhoyt.com/wcmia
About Me
![Page 3: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/3.jpg)
#wcmia @randyhoyt@randyhoyt
• APIs: Defined
• Two Examples:
1. Get Treehouse Badges
2. Get ShopLocket Products
• WordPress Functions
Overview
![Page 4: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/4.jpg)
API
![Page 5: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/5.jpg)
Application Programming Interface
![Page 6: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/6.jpg)
A point where two systems, subjects, organizations, etc., meet and interact.
Interface, http://dictionary.com/browse/interface
![Page 7: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/7.jpg)
[Keyboard]
![Page 8: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/8.jpg)
[Lock and Key]
![Page 9: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/9.jpg)
An interface for software components to communicate with each other.
Wikipedia: API, http://trhou.se/defineAPI
![Page 10: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/10.jpg)
#wcmia @randyhoyt@randyhoyt
• Android SDK: Camera API
API Examples
![Page 11: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/11.jpg)
import android.hardware.Camera;
Camera.getNumberOfCameras();
Camera.open(cameraId);
![Page 12: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/12.jpg)
#wcmia @randyhoyt@randyhoyt
• Android SDK: Camera API
• WordPress: Plugin API
API Examples
![Page 13: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/13.jpg)
<?php
/*
Plugin Name: Treehouse Badges
Description: Displays the badges ...
Version: 1.0
*/
?>
add_action('init','treehouse_badges_init');
...
![Page 14: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/14.jpg)
#wcmia @randyhoyt@randyhoyt
• Android SDK: Camera API
• WordPress: Plugin API
• HTML5: Canvas API
API Examples
![Page 15: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/15.jpg)
var canvas = document.getElementById("canvas");
var context = canvas.getContext("2d");
context.fillRect(10, 10, 40, 380, "#000000");
context.drawImage(img, x, y, 100, 77);
![Page 16: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/16.jpg)
Web APIs
![Page 17: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/17.jpg)
REST
![Page 18: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/18.jpg)
Representational State Transfer
![Page 19: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/19.jpg)
RESTful API
![Page 20: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/20.jpg)
Example #1: Treehouse
![Page 21: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/21.jpg)
[Treehouse screenshot]
![Page 22: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/22.jpg)
JavaScript Object Notation:Text-based open standard designed for human-readable data interchange.
Wikipedia: JSON, http://trhou.se/defineJSON
![Page 23: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/23.jpg)
{ "firstName": "John", "lastName": "Smith", "address": { "streetAddress": "21 2nd Street", "city": "New York", "state": "NY", "postalCode": 10021 }, "phoneNumber": [ { "type": "home", "number": "212 555-1234" }, { "type": "fax", "number": "646 555-4567" } ]}
Wikipedia: JSON, http://trhou.se/defineJSON
![Page 24: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/24.jpg)
[Treehouse JSON]
![Page 25: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/25.jpg)
[HTML]
![Page 26: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/26.jpg)
Asynchronous JavaScript and XML:Technique used by the browser to retrieve data from a server in the background without interfering with the existing page
Wikipedia: Ajax, http://trhou.se/defineAJAX
![Page 27: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/27.jpg)
[AJAX Request Code]
![Page 28: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/28.jpg)
[Badge Code]
![Page 29: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/29.jpg)
[Badge Display]
![Page 30: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/30.jpg)
![Page 31: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/31.jpg)
![Page 32: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/32.jpg)
![Page 33: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/33.jpg)
![Page 34: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/34.jpg)
![Page 35: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/35.jpg)
![Page 36: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/36.jpg)
![Page 37: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/37.jpg)
![Page 38: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/38.jpg)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'http://teamtreehou...
));
$resp = curl_exec($curl);
curl_close($curl);
?>
![Page 39: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/39.jpg)
GET Request with WordPress HTTP API
WordPress, http://codex.wordpress.org/HTTP_API
![Page 40: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/40.jpg)
#wcmia @randyhoyt@randyhoyt
• GET
• POST
• PUT
• DELETE
REST: Types of Requests
(Read)
(Create)
(Update)
(Delete)
![Page 41: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/41.jpg)
![Page 42: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/42.jpg)
![Page 43: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/43.jpg)
![Page 44: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/44.jpg)
![Page 45: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/45.jpg)
![Page 46: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/46.jpg)
#wcmia @randyhoyt@randyhoyt
• Does it have to be real time?
• What if something goes wrong?
API Questions
![Page 47: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/47.jpg)
Example #2: ShopLocket
![Page 48: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/48.jpg)
[Screenshot of WP]
![Page 49: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/49.jpg)
[Screenshot of WordPress]
![Page 50: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/50.jpg)
[Screenshot of Product Picker]
![Page 51: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/51.jpg)
[Screenshot of Product Picker]
![Page 52: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/52.jpg)
[Screenshot of Shortcode]
![Page 53: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/53.jpg)
[Screenshot of Website]
![Page 54: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/54.jpg)
Authentication
![Page 55: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/55.jpg)
OAuthAn open protocol to allow secure authorization in a simple and standard method from web, mobile and desktop applications.
OAuth, http://oauth.net/
![Page 56: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/56.jpg)
App ID
5f4a89f2d6655ac7a8859343d6d152579410e7b659b200e00aaf3721cf46269e
App Secret
fa963a1ef3702c16d934500f7621697e2d6bfd05d3ef1751a32bdeb2a0599020
![Page 57: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/57.jpg)
[ShopLocket]
![Page 58: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/58.jpg)
[ShopLocket Login]
![Page 59: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/59.jpg)
[ShopLocket]
![Page 60: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/60.jpg)
/? code = 53fe... & state = auth...
![Page 61: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/61.jpg)
[GET Request]
$args = array( "code" => $_GET["code"], "app_id" => "app id", "app_secret" => "app secret",);
$response = wp_remote_post( 'https://www.shoplocket.com/' . 'oauth/token', $args );
![Page 62: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/62.jpg)
Token:
310826b20a535a422ccaa46d65c7065f83e403b9218a38962ab4e43021b93585
![Page 63: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/63.jpg)
[Token]
![Page 64: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/64.jpg)
#wcmia @randyhoyt@randyhoyt
• Does it have to be real time?
• What if something goes wrong?
API Questions
![Page 65: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/65.jpg)
![Page 66: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/66.jpg)
![Page 67: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/67.jpg)
![Page 68: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/68.jpg)
![Page 69: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/69.jpg)
![Page 70: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/70.jpg)
![Page 71: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/71.jpg)
![Page 72: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/72.jpg)
![Page 73: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/73.jpg)
[Refresh Button]
![Page 74: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/74.jpg)
![Page 75: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/75.jpg)
WordPress Functions
![Page 76: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/76.jpg)
![Page 77: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/77.jpg)
![Page 78: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/78.jpg)
WordPress wp_ajax, http://trhou.se/wp_ajax_hook
![Page 79: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/79.jpg)
![Page 80: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/80.jpg)
GET Request with WordPress HTTP API
WordPress HTTP API, http://codex.wordpress.org/HTTP_API
![Page 81: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/81.jpg)
![Page 82: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/82.jpg)
WordPress update_option, http://trhou.se/update_option
![Page 83: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/83.jpg)
Transients?
WordPress, http://codex.wordpress.org/Transients_API
![Page 84: Integrating WordPress With Web APIs](https://reader033.vdocuments.mx/reader033/viewer/2022052505/555150f0b4c905c6268b558f/html5/thumbnails/84.jpg)
Integrating WordPressWith Web APIs
Randy Hoyt randyhoyt.com @randyhoyt
Presentation randyhoyt.com/wcmia