SlideShare a Scribd company logo
1 of 53
Download to read offline
WP REST API と
jQueryで作る
最短アプリ開発
ITかあさん
http://www.kaasan.info/
I am ‘ITかあさん’
Freelance engineer
http://www.kaasan.info/
I ♥ WordPress I ♥ JavaScript
ON SALE !!
現場で必ず使われている
WordPress
デザインのメソッド
[アップデート版]
Oct. 15, 2016
秋のJavaScript祭
In mixi
Please come to see that!!
OAuth 2.0
I want to say two things!!
Write Only Simple jQuery
Call By
“
Smartphone App
I made test app !
My Gist URL
Test APP URL
You can access from a browser !
JS
”スマホサイトじゃん”
JUST A WEB SITE!!!
やめて マサカリ。
JS
Write only
Authentication:OAuth 2.0
◦ What is OAuth 2.0
◦ Plugin:WP OAuth Server
◦ Login by the access token
Post: WP REST API
◦ Post by WP REST API
◦ Comment from WP REST API
◦ Show Posts & Comments !!
”What is OAuth 2.0?”
いきなり ちょいむずい。
Response
Request
通常のRequest
WordPressの中だけでの
リクエスト。
言語はPHPのみ
OAuth認証
END USER CLIENT
JavaScriptでもPHPでも
APIをたたければ
言語はなんでもよい!
”OAuth 1.0 OAuth 2.0”
違いが分からん
OAuth 1.0
OAuth 2.0
日が暮れる!.
I have only 30 min.
OAuth 2.0 OAuth 1.0
OAuth 2.0:
◦ OAuth1.0に比べてシンプル
◦ スマートフォンアプリにも対応可能
◦ Facebook
OAuth 1.0:
◦ 認証と証明がやや複雑
◦ Webアプリのみ
◦ Twitter
OAuth 2.0!
I chose this one.
WP OAUTH SERVER. Download
” 年間 約5000円”
$49 per year
マサカリ 痛い。
WP OAuth Server
◦ Client & Client secret
◦ Access Token
◦ Refresh Token
◦ Call Back URL
◦ State
◦ Getting Login User
OAuth 2.0認証で必要な機能が全て揃う
OAuth 2.0
日が暮れる!.
I have only 30 min.
省略、短縮版にしました!
◦ WordPress Login ID & Password
◦ Access Token
◦ Getting Login User
◦ Login Success Page
Refresh TokenからAccess Token再発行は
省略しました
プラグインを有効化すると
Client ID Client Secret
How To get Access Token ?
URI:
◦ https://example.com/oauth/token
Param: WP REST API
◦ grant_type : password
◦ client_id : your client_id
◦ client_secret : your client_secret
◦ username : WordPress User
◦ password : WordPress Password
Method: POST
USE Chrome Addon “DHC”
Response
{"access_token":"euggnhvgwdnakgmqb1brm4ismi3svx",
"Expires_in":3600,
"token_type":"Bearer",
"Scope":"basic",
"refresh_token":"wnc5qx9g7fwsgvonp8tzcgdcurfy4m"}
Get the Login User
URI:
◦ https://example.com/oauth/me
Param:
◦ access_token : access_token
◦ client_id : your client_id
◦ client_secret : your client_secret
Method: GET
USE Chrome Addon “DHC”
Response
{
"ID": "1",
"user_login": "itkaasan",
"user_nicename": "itkaasan",
"user_email": "seven.mazda@gmail.com",
"user_registered": "2016-08-29 17:58:58",
"user_status": "0",
"display_name": "itkaasan",
"email": "seven.mazda@gmail.com"
}
New Token by Refresh Token
URI:
◦ https://your-server.com/oauth/token
Param:
◦ grant_type : refresh_token
◦ client_id : your client_id
◦ client_secret : your client_secret
◦ refresh_token : refresh_token
Method: GET
Token有効チェックはない
Tokenから認証を行う
ユーザー情報を取得
TokenをCookieに
”Access from jQuery”
さあ、エディタの準備だ!
とその前に
超えなければ
ならない
壁
Cross Domain!.
Cross Domain
Cross Domain問題
END USER CLIENT
exampleA.com
exampleB.com
違うドメイン間は
本来データのやり取りが
できない
Write header !!
Access-Control-Allow-Origin": your URI
Access-Control-Allow-Credentials":true
複数サイトの場合
パイプ|で繋ぐ
Check My Gist
Check My Gist
◦ 1. Cross Domain
◦ 2. Access Token
◦ 3. Get a Login User
SHOW 
DEMO 
Application
” WP REST API ”
さあ、認証ができたら。
Access WP REST API
URI:
◦ https://example.com/wp-json/wp/v2/posts
Param:
◦ user_id : login user id
◦ limit : int
◦ order : desc or asc
◦
Method: GET
USE Chrome Addon “DHC”
” もう時間がない”
Don’t have time anymore
あ、最後にマサカリ 痛い。
Check My Gist
Check My Gist
◦ 1. Post Comments
◦ 2.Show Comments
SHOW 
DEMO 
Application
OAuth 2.0 によるログイン認証
AccessTokenを取得する
Access Tokenからユーザー情報取得
取得したUser IDから投稿やデータの取得!
Cross Domainはheaderに追記で
APIを使える範囲を限定
Summary
JavaScriptだけでここまで出来る!
WP REST APIと
jQueに敬意を表したい!
I have only 30 min.
”ありがとうございました”
Thank you for listening
Write more jQuery!

More Related Content

What's hot

WordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoyaWordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoya
Shinichi Nishikawa
 
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
rie05
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
tokumotonahoko
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
Shinichi Nishikawa
 

What's hot (20)

第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介第3回WordPress Cafe プラグイン紹介
第3回WordPress Cafe プラグイン紹介
 
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
WordPressのオススメスライドとか記事とか集めました。(2012.10.13 WordBench神戸)
 
WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)WP-CLI (WordBench Sendai 20140628)
WP-CLI (WordBench Sendai 20140628)
 
WordBench Saitama vol.6
WordBench Saitama vol.6WordBench Saitama vol.6
WordBench Saitama vol.6
 
WordPressで行う継続的インテグレーションのススメ
WordPressで行う継続的インテグレーションのススメWordPressで行う継続的インテグレーションのススメ
WordPressで行う継続的インテグレーションのススメ
 
WordCamp Kansai 2014 セキュリティ&バックアップ
WordCamp Kansai 2014 セキュリティ&バックアップWordCamp Kansai 2014 セキュリティ&バックアップ
WordCamp Kansai 2014 セキュリティ&バックアップ
 
JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)JAWSUG Kansai Simple Workflow Service (SWF)
JAWSUG Kansai Simple Workflow Service (SWF)
 
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でーWP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
WP-CLIとWordPress公式ディレクトリを活用した爆速サイト構築術 ーインストールからデザイン、ページ作成までを10分でー
 
DevLove Kansai AWS
DevLove Kansai AWSDevLove Kansai AWS
DevLove Kansai AWS
 
20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川
20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川
20191204_WordPressの教科書出版記念イベント_パフォーマンスチューニングとセキュリティ_小川
 
え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?え?まだMAMPで消耗してんの?
え?まだMAMPで消耗してんの?
 
WordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoyaWordPressでウェブサービスを作ろう! #wbNagoya
WordPressでウェブサービスを作ろう! #wbNagoya
 
WordCamp Kansai 2015 発表資料
WordCamp Kansai 2015 発表資料WordCamp Kansai 2015 発表資料
WordCamp Kansai 2015 発表資料
 
WordPress REST API とリアクティブプログラミング
WordPress REST API とリアクティブプログラミングWordPress REST API とリアクティブプログラミング
WordPress REST API とリアクティブプログラミング
 
Learn vue.js
Learn vue.jsLearn vue.js
Learn vue.js
 
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズCSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
CSS Nite in OSAKA, Vol.32:デザイナーのためのWordPressカスタマイズ
 
レスポンシブ・イメージのWordPressへの実装と4.4
レスポンシブ・イメージのWordPressへの実装と4.4レスポンシブ・イメージのWordPressへの実装と4.4
レスポンシブ・イメージのWordPressへの実装と4.4
 
初心者でもすぐできる Wordpress バックアップのススメ
初心者でもすぐできる Wordpress バックアップのススメ初心者でもすぐできる Wordpress バックアップのススメ
初心者でもすぐできる Wordpress バックアップのススメ
 
WordPressってブログじゃないの?
WordPressってブログじゃないの?WordPressってブログじゃないの?
WordPressってブログじゃないの?
 
4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座4時間まったりWordPressテーマ作成講座
4時間まったりWordPressテーマ作成講座
 

Viewers also liked

CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
Hiroshi Tokumaru
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
J-Stream Inc.
 

Viewers also liked (17)

WordPressのCDN化
WordPressのCDN化WordPressのCDN化
WordPressのCDN化
 
わぷー5周年 〜誕生から現在、未来〜 WordCamp Tokyo 2016ver
わぷー5周年 〜誕生から現在、未来〜 WordCamp Tokyo 2016verわぷー5周年 〜誕生から現在、未来〜 WordCamp Tokyo 2016ver
わぷー5周年 〜誕生から現在、未来〜 WordCamp Tokyo 2016ver
 
WordPressでも意識したいアクセシビリティ 〜「優しいウェブサイト」作りをはじめよう〜
WordPressでも意識したいアクセシビリティ 〜「優しいウェブサイト」作りをはじめよう〜WordPressでも意識したいアクセシビリティ 〜「優しいウェブサイト」作りをはじめよう〜
WordPressでも意識したいアクセシビリティ 〜「優しいウェブサイト」作りをはじめよう〜
 
WordCamp Tokyo2016-WooCommerceのすすめ
WordCamp Tokyo2016-WooCommerceのすすめWordCamp Tokyo2016-WooCommerceのすすめ
WordCamp Tokyo2016-WooCommerceのすすめ
 
Security, more important than ever!
Security, more important than ever!Security, more important than ever!
Security, more important than ever!
 
CMSとしてのWordPress - WordPressで管理するランディングページ -
CMSとしてのWordPress - WordPressで管理するランディングページ -CMSとしてのWordPress - WordPressで管理するランディングページ -
CMSとしてのWordPress - WordPressで管理するランディングページ -
 
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
レスポンシブデザイン前提のWordPressの表示速度高速化の考え方
 
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼうCMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
CMS四天王への攻撃デモを通じて、WordPressの効果的な防御法を学ぼう
 
ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術ノンプログラマーのためのWordPressテーマ作成ステップアップ術
ノンプログラマーのためのWordPressテーマ作成ステップアップ術
 
より多くの人へ届けるために Webコンテンツで 「ちょっと」気をつけたいこと
より多くの人へ届けるために Webコンテンツで 「ちょっと」気をつけたいことより多くの人へ届けるために Webコンテンツで 「ちょっと」気をつけたいこと
より多くの人へ届けるために Webコンテンツで 「ちょっと」気をつけたいこと
 
超初心者向け・オンライン勉強会のススメ(WordCamp Tokyo 2016 LT スライド)
超初心者向け・オンライン勉強会のススメ(WordCamp Tokyo 2016 LT スライド)超初心者向け・オンライン勉強会のススメ(WordCamp Tokyo 2016 LT スライド)
超初心者向け・オンライン勉強会のススメ(WordCamp Tokyo 2016 LT スライド)
 
テーマ・プラグイン開発の光と闇 #wctokyo
テーマ・プラグイン開発の光と闇 #wctokyoテーマ・プラグイン開発の光と闇 #wctokyo
テーマ・プラグイン開発の光と闇 #wctokyo
 
情報サイトの金持ちさんと貧乏さん
情報サイトの金持ちさんと貧乏さん情報サイトの金持ちさんと貧乏さん
情報サイトの金持ちさんと貧乏さん
 
Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?Web制作・運用会社に必要なCDNサービスとは?
Web制作・運用会社に必要なCDNサービスとは?
 
Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか?
Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか? Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか?
Cloud OnAir #04 今話題の機械学習・GCP で何ができるのか?
 
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】【プレゼン】見やすいプレゼン資料の作り方【初心者用】
【プレゼン】見やすいプレゼン資料の作り方【初心者用】
 
しょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedeeしょぼいプレゼンをパワポのせいにするな! by @jessedee
しょぼいプレゼンをパワポのせいにするな! by @jessedee
 

Similar to WordCamp Tokyo2016itkaasan

Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
Hiroshi Oyamada
 
ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2
Taichi Inaba
 
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
脇村 隆
 
#idcon 14 Multiple Personae, One "Persona"
#idcon 14 Multiple Personae, One "Persona"#idcon 14 Multiple Personae, One "Persona"
#idcon 14 Multiple Personae, One "Persona"
bkihara
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
Ryo Ito
 
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
Yosuke Onoue
 

Similar to WordCamp Tokyo2016itkaasan (20)

Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!Azure Static Web Apps を試してみた!
Azure Static Web Apps を試してみた!
 
Twitter連携chrome extension作り方
Twitter連携chrome extension作り方Twitter連携chrome extension作り方
Twitter連携chrome extension作り方
 
Sl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibataSl study 20150804-soft-layer-apibasic-shibata
Sl study 20150804-soft-layer-apibasic-shibata
 
ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2ゼロからはじめるサーバーサイド Vol2
ゼロからはじめるサーバーサイド Vol2
 
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
OpenID Connect 入門 〜コンシューマーにおけるID連携のトレンド〜
 
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
第四回Web apiを使ってwebアプリケーションを作る勉強会テキスト2
 
Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1Introduction of OAuth 2.0 vol.1
Introduction of OAuth 2.0 vol.1
 
進化する Web ~ Progressive Web Apps の実装と応用 ~
進化する Web  ~ Progressive Web Apps の実装と応用 ~進化する Web  ~ Progressive Web Apps の実装と応用 ~
進化する Web ~ Progressive Web Apps の実装と応用 ~
 
後期02
後期02後期02
後期02
 
#idcon 14 Multiple Personae, One "Persona"
#idcon 14 Multiple Personae, One "Persona"#idcon 14 Multiple Personae, One "Persona"
#idcon 14 Multiple Personae, One "Persona"
 
Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装Idcon25 FIDO2 の概要と YubiKey の実装
Idcon25 FIDO2 の概要と YubiKey の実装
 
マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016マイクロWebアプリケーション - Developers.IO 2016
マイクロWebアプリケーション - Developers.IO 2016
 
The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9The Latest Specs of OpenID Connect at #idcon 9
The Latest Specs of OpenID Connect at #idcon 9
 
PFI Seminar 2012/02/24
PFI Seminar 2012/02/24PFI Seminar 2012/02/24
PFI Seminar 2012/02/24
 
WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方WP-APIを使ってみよう&No PHPテーマという考え方
WP-APIを使ってみよう&No PHPテーマという考え方
 
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
未来のwebに欠かせないREST APIをApache Solr + Drupal8で実装しよう@PHPカンファレンス2016 東京
 
AngularJSでの非同期処理の話
AngularJSでの非同期処理の話AngularJSでの非同期処理の話
AngularJSでの非同期処理の話
 
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラムDropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
Dropbox APIなどを使って制作を効率化しよう@関西オープンフォーラム
 
Getting started with Handoff
Getting started with HandoffGetting started with Handoff
Getting started with Handoff
 
VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発VSCodeで始めるAzure Static Web Apps開発
VSCodeで始めるAzure Static Web Apps開発
 

More from 松田 千尋

More from 松田 千尋 (6)

JavaScript祭in ForPro nuxt.jsとSSRことはじめ
JavaScript祭in ForPro nuxt.jsとSSRことはじめJavaScript祭in ForPro nuxt.jsとSSRことはじめ
JavaScript祭in ForPro nuxt.jsとSSRことはじめ
 
Node.jsでデータ収集して デスクトップアプリを作ろう!
Node.jsでデータ収集して デスクトップアプリを作ろう!Node.jsでデータ収集して デスクトップアプリを作ろう!
Node.jsでデータ収集して デスクトップアプリを作ろう!
 
React.jsでHowManyPizza
React.jsでHowManyPizzaReact.jsでHowManyPizza
React.jsでHowManyPizza
 
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
SeleniumIDEとSelenium WebDriver × Node.js Seleniumで業務効率化する15分
 
BuddyPressで街のポータルサイトを作ろう
BuddyPressで街のポータルサイトを作ろうBuddyPressで街のポータルサイトを作ろう
BuddyPressで街のポータルサイトを作ろう
 
Windows Azure kaasanイメージについて
Windows Azure kaasanイメージについてWindows Azure kaasanイメージについて
Windows Azure kaasanイメージについて
 

WordCamp Tokyo2016itkaasan