Top Banner
WP REST API jQueryで作る 最短アプリ開発 ITかあさん http://www.kaasan.info/
53

WordCamp Tokyo2016itkaasan

Apr 16, 2017

Download

Technology

Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: WordCamp Tokyo2016itkaasan

WP REST API とjQueryで作る最短アプリ開発ITかあさんhttp://www.kaasan.info/

Page 2: WordCamp Tokyo2016itkaasan

I am ‘ITかあさん’ Freelance engineerhttp://www.kaasan.info/I ♥� WordPress I ♥� JavaScript

ON SALE !! 現場で必ず使われている

WordPressデザインのメソッド

[アップデート版]

Page 3: WordCamp Tokyo2016itkaasan

Oct. 15, 2016

秋のJavaScript祭In mixi

Please come to see that!!

Page 4: WordCamp Tokyo2016itkaasan

OAuth 2.0

I want to say two things!!

Page 5: WordCamp Tokyo2016itkaasan

Write Only Simple jQuery

Call By

Page 6: WordCamp Tokyo2016itkaasan

Smartphone App

Page 8: WordCamp Tokyo2016itkaasan

You can access from a browser !

JS

Page 9: WordCamp Tokyo2016itkaasan

”スマホサイトじゃん”JUST A WEB SITE!!!

やめて マサカリ

Page 10: WordCamp Tokyo2016itkaasan

JS

Page 11: WordCamp Tokyo2016itkaasan

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 !!

Page 12: WordCamp Tokyo2016itkaasan

”What is OAuth 2.0?”

いきなり ちょい

むずい。

Page 13: WordCamp Tokyo2016itkaasan

Response

Request

通常のRequest

WordPressの中だけでのリクエスト。言語はPHPのみ

Page 14: WordCamp Tokyo2016itkaasan

OAuth認証

END USER CLIENT

JavaScriptでもPHPでもAPIをたたければ言語はなんでもよい!

Page 15: WordCamp Tokyo2016itkaasan

”OAuth 1.0 OAuth 2.0”

違いが分からん

Page 16: WordCamp Tokyo2016itkaasan

OAuth 1.0

Page 17: WordCamp Tokyo2016itkaasan

OAuth 2.0

Page 18: WordCamp Tokyo2016itkaasan

日が暮れる!.

I have only 30 min.

Page 19: WordCamp Tokyo2016itkaasan

OAuth 2.0 OAuth 1.0

OAuth 2.0:◦ OAuth1.0に比べてシンプル◦ スマートフォンアプリにも対応可能◦ Facebook

OAuth 1.0: ◦ 認証と証明がやや複雑

◦ Webアプリのみ

◦ Twitter

Page 20: WordCamp Tokyo2016itkaasan

OAuth 2.0!

I chose this one.

Page 21: WordCamp Tokyo2016itkaasan

WP OAUTH SERVER. Download

Page 22: WordCamp Tokyo2016itkaasan

” 年間 約5000円”$49 per year

マサカリ 痛

い。

Page 23: WordCamp Tokyo2016itkaasan

WP OAuth Server

◦ Client & Client secret◦ Access Token◦ Refresh Token◦ Call Back URL◦ State◦ Getting Login User

OAuth 2.0認証で必要な機能が全て揃う

Page 24: WordCamp Tokyo2016itkaasan

OAuth 2.0

Page 25: WordCamp Tokyo2016itkaasan

日が暮れる!.

I have only 30 min.

Page 26: WordCamp Tokyo2016itkaasan

省略、短縮版にしました!

◦ WordPress Login ID & Password◦ Access Token◦ Getting Login User◦ Login Success Page

Refresh TokenからAccess Token再発行は省略しました

Page 27: WordCamp Tokyo2016itkaasan

プラグインを有効化するとClient ID Client Secret

Page 28: WordCamp Tokyo2016itkaasan

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

Page 29: WordCamp Tokyo2016itkaasan

USE Chrome Addon “DHC”

Page 30: WordCamp Tokyo2016itkaasan

Response

{"access_token":"euggnhvgwdnakgmqb1brm4ismi3svx",

"Expires_in":3600,

"token_type":"Bearer",

"Scope":"basic",

"refresh_token":"wnc5qx9g7fwsgvonp8tzcgdcurfy4m"}

Page 31: WordCamp Tokyo2016itkaasan

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

Page 32: WordCamp Tokyo2016itkaasan

USE Chrome Addon “DHC”

Page 33: WordCamp Tokyo2016itkaasan

Response

{

"ID": "1",

"user_login": "itkaasan",

"user_nicename": "itkaasan",

"user_email": "[email protected]",

"user_registered": "2016-08-29 17:58:58",

"user_status": "0",

"display_name": "itkaasan",

"email": "[email protected]"

}

Page 34: WordCamp Tokyo2016itkaasan

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

Page 35: WordCamp Tokyo2016itkaasan

Token有効チェックはない

Tokenから認証を行う

ユーザー情報を取得

TokenをCookieに

Page 36: WordCamp Tokyo2016itkaasan

”Access from jQuery”

さあ、エ

ディタの準備だ!

Page 37: WordCamp Tokyo2016itkaasan

とその前に

Page 38: WordCamp Tokyo2016itkaasan

超えなければならない

Page 39: WordCamp Tokyo2016itkaasan

Page 40: WordCamp Tokyo2016itkaasan

Cross Domain!.

Cross Domain

Page 41: WordCamp Tokyo2016itkaasan

Cross Domain問題

END USER CLIENT

exampleA.com

exampleB.com

違うドメイン間は本来データのやり取りができない

Page 42: WordCamp Tokyo2016itkaasan

Write header !!

Access-Control-Allow-Origin": your URI Access-Control-Allow-Credentials":true

複数サイトの場合パイプ|で繋ぐ

Page 44: WordCamp Tokyo2016itkaasan

SHOW DEMO Application

Page 45: WordCamp Tokyo2016itkaasan

” WP REST API ”

さあ、認

証ができたら。

Page 46: WordCamp Tokyo2016itkaasan

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

Page 47: WordCamp Tokyo2016itkaasan

USE Chrome Addon “DHC”

Page 48: WordCamp Tokyo2016itkaasan

” もう時間がない”Don’t have time anymore

あ、最後にマサカリ

 痛い。

Page 50: WordCamp Tokyo2016itkaasan

SHOW DEMO Application

Page 51: WordCamp Tokyo2016itkaasan

OAuth 2.0 によるログイン認証AccessTokenを取得する

Access Tokenからユーザー情報取得取得したUser IDから投稿やデータの取得!

Cross Domainはheaderに追記でAPIを使える範囲を限定

Summary

Page 52: WordCamp Tokyo2016itkaasan

JavaScriptだけでここまで出来る!

WP REST APIとjQueに敬意を表したい!

I have only 30 min.

Page 53: WordCamp Tokyo2016itkaasan

”ありがとうございました”Thank you for listening

Write more jQ

uery!