109
kintone×WordPress ハンズオン kintone エバンジェリスト 細谷 崇 ( hosoya takashi ) Twitter: @tkc49 WordBench京都 9月号

WordBench京都 9月号:kintone×WordPressハンズオン

Embed Size (px)

Citation preview

Page 1: WordBench京都 9月号:kintone×WordPressハンズオン

kintone×WordPress ハンズオン

kintone エバンジェリスト 細谷 崇 ( hosoya takashi )

Twitter: @tkc49

WordBench京都 9月号

Page 2: WordBench京都 9月号:kintone×WordPressハンズオン

後日SlideShareで 公開します。

Page 3: WordBench京都 9月号:kintone×WordPressハンズオン

準備物の確認

Page 4: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの準備物の確認

kintoneのアカウント

Page 5: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの準備物の確認

WordPressの環境

Page 6: WordBench京都 9月号:kintone×WordPressハンズオン

36歳2015年4月から フリーのエンジニア ・WordPress ・kintone

自己紹介

Page 7: WordBench京都 9月号:kintone×WordPressハンズオン

自己紹介:WordPress

Page 8: WordBench京都 9月号:kintone×WordPressハンズオン

自己紹介:CoderDojo西宮/梅田

Page 9: WordBench京都 9月号:kintone×WordPressハンズオン

詳しくは

自己紹介:CoderDojo西宮/梅田

Page 10: WordBench京都 9月号:kintone×WordPressハンズオン

自己紹介:CoderDojo西宮/梅田

Page 11: WordBench京都 9月号:kintone×WordPressハンズオン

4月kintone Evangelist

Page 12: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

Page 13: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

Page 14: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

①アンケートフォームの情報をkintoneへ登録

Page 15: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

①アンケートフォームの情報をkintoneへ登録

②アンケートの情報をWEBページに表示

Page 16: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

①アンケートフォームの情報をkintoneへ登録

②アンケートの情報をWEBページに表示

表示する部分のPluginを作成

Page 17: WordBench京都 9月号:kintone×WordPressハンズオン

ハンズオンの内容

Cybozu WP to kintone

kintoneのフォーム情報を取得しWEBサイトにフォームのページを

作成することが可能。

Page 18: WordBench京都 9月号:kintone×WordPressハンズオン

表示するためのレシピ

Page 19: WordBench京都 9月号:kintone×WordPressハンズオン

表示するためのレシピ

・kintone API/REST API ・Plugin API/Hooks ・Shortcode API

Page 20: WordBench京都 9月号:kintone×WordPressハンズオン

ドキュメント

Page 21: WordBench京都 9月号:kintone×WordPressハンズオン

ドキュメント

kintoneの開発する為のポータルサイト

Page 22: WordBench京都 9月号:kintone×WordPressハンズオン
Page 23: WordBench京都 9月号:kintone×WordPressハンズオン
Page 24: WordBench京都 9月号:kintone×WordPressハンズオン
Page 25: WordBench京都 9月号:kintone×WordPressハンズオン
Page 26: WordBench京都 9月号:kintone×WordPressハンズオン

ドキュメント

WordPressの開発する為のポータルサイト

Page 27: WordBench京都 9月号:kintone×WordPressハンズオン

Plugin API/Hooks

Shortcode API

Page 28: WordBench京都 9月号:kintone×WordPressハンズオン

英語がイヤイヤな方 (T_T)

Page 29: WordBench京都 9月号:kintone×WordPressハンズオン

ドキュメント

WordPress プラグイン開発のバイブル

★4.3̶ 目次 ̶ 第5章

フィルターフックとアクションフックを理解する

第11章 WordPress APIリファレンス

Page 30: WordBench京都 9月号:kintone×WordPressハンズオン

では始めましょう

Page 31: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

ここな!

Page 32: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

「作成」クリックな!

Page 33: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

「はじめから作成」クリックしてや!

Page 34: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

「WordBench京都アンケート」って入力してや!

Page 35: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

「一般設定」クリックな!

Page 36: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

好きなアイコン選んでや!

Page 37: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

自前アイコンも登録できるで!

Page 38: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

表示画面のデザインを決めてや!

Page 39: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

「アンケート一覧です。」って書いてな!

Page 40: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

最後に「保存」してや!

Page 41: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

いよいよ、「フォーム」作成やで!

Page 42: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

文字列(1行) ドロップダウン

文字列(1行)

リンクドロップダウン

リッチエディター

Page 43: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

カーソルをこのあたりにあてると歯車マークがでるで!

Page 44: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

適宜必須項目とかも決めてな!

Page 45: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

アルファベットにしときな! ※ハイフンはあかんで!

Page 46: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

でけたら「保存」や

Page 47: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

一覧に表示する項目を作るで!

Page 48: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

分かりやすい名前つけといて

ドラッグ&ドロップで項目作ってや

一覧表示のフィルターやソートも出来るで 好きに設定してや!

Page 49: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

はい、できたら「保存」や

Page 50: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

最後に「設定完了」せな、 元も子もなくなるで!

Page 51: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

当然「OK」や!!

Page 52: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

アプリの完成や! 中見てみ!

Page 53: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

最後に作成した「一覧」の項目が でとるやろ!

Page 54: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

一覧はようけ作成できて、ここで切り替えれるんや!

Page 55: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

試しに1つデータ作成や!

Page 56: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

Page 57: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

入力したら「保存」な!

Page 58: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

データにコメントも残せるで!

Page 59: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

誰がどこ変更したかも わかるんやで

Page 60: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

一覧ページに!

Page 61: WordBench京都 9月号:kintone×WordPressハンズオン

まずはkintoneアプリの作成

一覧表示もバッチリ!

Page 62: WordBench京都 9月号:kintone×WordPressハンズオン

アプリ完成

Page 63: WordBench京都 9月号:kintone×WordPressハンズオン

いよいよプラグインの作成

Page 64: WordBench京都 9月号:kintone×WordPressハンズオン

その前に・・・

Page 65: WordBench京都 9月号:kintone×WordPressハンズオン

デバックモードに・・・

define(  'WP_DEBUG',  true  );

root/wp-­‐config.php

Page 66: WordBench京都 9月号:kintone×WordPressハンズオン

プラグインディレクトリーとファイルの作成

Page 67: WordBench京都 9月号:kintone×WordPressハンズオン

その前に・・・

Page 68: WordBench京都 9月号:kintone×WordPressハンズオン

hatamoto

plugin作成を楽にしてくれるgrunt-initテンプレート

便利なツールの紹介

使える環境の人は 使ったら便利です

Page 69: WordBench京都 9月号:kintone×WordPressハンズオン

プラグインディレクトリーとファイルの作成

「kintone-show-data」

kintone-show-data.php

Page 70: WordBench京都 9月号:kintone×WordPressハンズオン

プラグインディレクトリーとファイルの作成

他のプラグイン名と被らないように気をつけよう! 公式ディレクトリーに同じ名前のものがあると

上書きされる恐れがある

Page 71: WordBench京都 9月号:kintone×WordPressハンズオン

管理画面にプラグインを表示

Page 72: WordBench京都 9月号:kintone×WordPressハンズオン

管理画面にプラグインを表示

<?php  /**    *  Plugin  Name:  Kintone  Show  Data    *  Description:  Cybozu  kintoneの情報を表示します。      *  Version:    0.0.1    *  Author:      Your  Name    *  License:    GPLv2    *  Domain  Path:  /languages    */

kintone-­‐show-­‐data.php

Page 73: WordBench京都 9月号:kintone×WordPressハンズオン

管理画面にプラグインを表示

プラグインリストに表示されればOK! 「有効化」にしてや!

Page 74: WordBench京都 9月号:kintone×WordPressハンズオン

プラグインの型を書く

<?php  /**    *  Plugin  Name:  Kintone  Show  Data    *  Description:  Cybozu  kintoneの情報を表示します。      *  Version:    0.0.1    *  Author:      Takashi  Hosoya    *  License:    GPLv2    *  Domain  Path:  /languages    */  

$KintoneShowData  =  new  KintoneShowData();  $KintoneShowData-­‐>register();  

class  KintoneShowData  {     function  __construct()     {  

//コンストラクター    }    public  function  register()    {  

//レジスター    }  

}

kintone-­‐show-­‐data.php

Page 75: WordBench京都 9月号:kintone×WordPressハンズオン

プラグインの型を書く

WordPressの管理画面をリロードして エラーが出てなかったらOK

Page 76: WordBench京都 9月号:kintone×WordPressハンズオン

アクションフックを登録する

class  KintoneShowData  {     function  __construct()     {  

//コンストラクター    }    public  function  register()    {  

//レジスター  add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );  

 }    public  function  plugins_loaded()    {  

//  プラグインが全て読み込まれた後に実行    }  

}

kintone-­‐show-­‐data.php

Page 77: WordBench京都 9月号:kintone×WordPressハンズオン

add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );

アクションフックを登録する

Page 78: WordBench京都 9月号:kintone×WordPressハンズオン

add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );

「plugins_loaded」というアクションフックに

アクションフックを登録する

Page 79: WordBench京都 9月号:kintone×WordPressハンズオン

add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );

「plugins_loaded」というアクションフックに 自身の「plugins_loaded」メソッドを登録する。

アクションフックを登録する

Page 80: WordBench京都 9月号:kintone×WordPressハンズオン

add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );

「plugins_loaded」というアクションフックに 自身の「plugins_loaded」メソッドを登録する。

登録すると、「plugins_loaded」が実行されたタイミングで 自身の「plugins_loaded」メソッドも実行して貰える。

これを「フック」と言います。 実行したい処理をフックしておく。

アクションフックを登録する

Page 81: WordBench京都 9月号:kintone×WordPressハンズオン

アクションフックを登録する

Simple Colors

WordPressの実行フローを視覚化してみる

http://www.warna.info/archives/279/

Page 82: WordBench京都 9月号:kintone×WordPressハンズオン

ショートコードを登録する

class  KintoneShowData  {     function  __construct()     {  

//コンストラクター    }    public  function  register()    {  

//レジスター  add_action(  'plugins_loaded',  array(  $this,  'plugins_loaded'  ),  1  );  

 }    public  function  plugins_loaded()    {  

//  プラグインが全て読み込まれた後に実行  add_shortcode(  'KintoneShowData',  array(  $this,  'kintone_show_data_func'  ));  

 }    public  function  kintone_show_data_func(){  

//  「KintoneShowData」ショートコードが呼ばれたら実行する  

return  ‘表示OK!’;    }  

kintone-­‐show-­‐data.php

Page 83: WordBench京都 9月号:kintone×WordPressハンズオン

add_shortcode(  'KintoneShowData',  array(  $this,  'kintone_show_data_func'  ));

ショートコードを登録する

Page 84: WordBench京都 9月号:kintone×WordPressハンズオン

ショートコードを登録する

Page 85: WordBench京都 9月号:kintone×WordPressハンズオン

kintoneのデータを取得する

[KintoneShowData]が実行されたら、 kintoneのデータを取得する。

kintone REST API

Page 86: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

Page 87: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

①サブドメイン xxx.cybozu.com/k/84/

②アプリ番号 xxx.cybozu.com/k/84/

サブドメイン, アプリ番号, APIトークン

Page 88: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

「このアプリの設定」をクリック!

Page 89: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

「詳細設定」をクリック!

Page 90: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

「APIトークン」をクリック!

Page 91: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

「生成する」をクリック!

Page 92: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

今回は表示するだけなので 「レコード閲覧」のみでOK!

Page 93: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

APIトークンをメモっとく

Page 94: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

「保存」をクリック

Page 95: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

必ず「設定完了」をする

Page 96: WordBench京都 9月号:kintone×WordPressハンズオン

kintone REST API で必要なもの

当然「OK」

Page 97: WordBench京都 9月号:kintone×WordPressハンズオン

これでREST APIで接続する為の 必要なデータは揃いました。

Page 98: WordBench京都 9月号:kintone×WordPressハンズオン

WordPressでのREST APIの利用

$response  =  wp_remote_get(  $url,  $args  );

PHPから外部APIを叩く時は、file_get_contents を使いますが、 WordPressには、wp_remote_get 関数が用意されているので、 そちらを使うのが良いです!

<?php  $args  =  array(          'timeout'          =>  5,          'redirection'  =>  5,          'httpversion'  =>  '1.0',          'user-­‐agent'    =>  'WordPress/'  .  $wp_version  .  ';  '  .  get_bloginfo(  'url'  ),          'blocking'        =>  true,          'headers'          =>  array(),          'cookies'          =>  array(),          'body'                =>  null,          'compress'        =>  false,          'decompress'    =>  true,          'sslverify'      =>  true,          'stream'            =>  false,          'filename'        =>  null  );  ?>

Page 99: WordBench京都 9月号:kintone×WordPressハンズオン

kintoneのデータを取得する

・  ・  ・  

 public  function  plugins_loaded()    {  

//  プラグインが全て読み込まれた後に実行  add_shortcode(  'KintoneShowData',  array(  $this,  'kintone_show_data_func'  ));  

 }    public  function  kintone_show_data_func(){  

//  「KintoneShowData」ショートコードが呼ばれたら実行する  

$url  =  'https://サブドメイン.cybozu.com/k/v1/records.json?app=アプリ番号';  

$headers  =  array(  'X-­‐Cybozu-­‐API-­‐Token'  =>  ‘トークン'  );      

$res  =  wp_remote_get(       $url,       array(         'headers'  =>  $headers       )  );  $return_value  =  json_decode(  $res['body'],  true  );  

//  ちゃんと取得出来ているか確認する  var_dump($return_value);  

kintone-­‐show-­‐data.php

Page 100: WordBench京都 9月号:kintone×WordPressハンズオン

kintoneのデータを取得する

Page 101: WordBench京都 9月号:kintone×WordPressハンズオン

kintoneのデータを取得する

$return_value  =  json_decode(  $res['body'],  true  );  

$str    =  "<table  border=‘1'>";  $str  .=  "<tr>";  $str  .=  "<th>レコード番号</th>";  

$str  .=  "<th>名前</th>";  

$str  .=  "<th>性別</th>";    

$str  .=  "<th>メールアドレス</th>";  

$str  .=  "<th>満足度</th>";  

$str  .=  "<th>感想</th>";    $str  .=  "</tr>";        for(  $i=0;  $i  <  count(  $return_value['records']  );  $i++  ){  

$str  .=  "<tr>";     $str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['レコード番号']['value']);     $str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['name']['value']);     $str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['sex']['value']);     $str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['email']['value']);     $str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['satisfaction']['value']);  

$str  .=  sprintf("<td>%s</td>",  $return_value['records'][$i]['impressions']['value']);         $str  .=  "</tr>";      }  $str  .=  "</table>";  return  $str;  

 }  

}

Page 102: WordBench京都 9月号:kintone×WordPressハンズオン

kintoneのデータを取得する

Page 103: WordBench京都 9月号:kintone×WordPressハンズオン

時間があれば Cybozu WP to kintone の使い方の説明をします。

Page 104: WordBench京都 9月号:kintone×WordPressハンズオン

便利ツールの紹介

Page 105: WordBench京都 9月号:kintone×WordPressハンズオン

便利ツールの紹介:kintone PHP SDK

The Kintone SDK for PHP https://github.com/hissy/kintone-php

kintone API SDK for PHP https://github.com/cstap/kintone-sdk-php

Page 106: WordBench京都 9月号:kintone×WordPressハンズオン

便利ツールの紹介:その他

https://cybozudev.zendesk.com/hc/ja/categories/200182110-SDK-%CE%B2-Tools

Page 107: WordBench京都 9月号:kintone×WordPressハンズオン

最後に

今回は時間の都合によりエラー処理やセキュリティを考慮したコードにはなっていませんので、あしからずm(__)m またパラメーターの設定画面などもっと汎用性のあるプラグインの開発をしたい場合、以下の書籍をオススメします。

Page 108: WordBench京都 9月号:kintone×WordPressハンズオン

最後に

11/20(金)Cybozu.com Conference 2015

Page 109: WordBench京都 9月号:kintone×WordPressハンズオン

ぜひ!!!!