SlideShare a Scribd company logo
1 of 62
ウェブCMS 「Movable Type」と
kintoneを連携して
フォームデータをDB化しよう
2016年5月27日
シックス・アパート株式会社 長内毅志
• 本資料は、2016年5月27日(金) kintone devCamp で行ったハンズオンのセミ
ナー資料です。
• 一部ハンズオン実施時と変更した箇所があるため、ご了承ください。
本日の講師
• シックス・アパート株式会社 長内毅志
–2011年~ Movable Typeプロダクトマネージャー
–2014年~ ディベロッパーリレーションマネージャー
エバンジェリスト
–趣味 ダンス (ストリート、ジャズ)
ジョギング (サブフォー)
英語の勉強 (TOEIC 875, 英検準1級)
家族と過ごすこと
本日のサマリ
• Movable Type(MT) とは
–Movable Type とkintoneの意外な関係
• Movable Type とkintoneの連携
Movable Type とは
Movable Typeとは
• 10年以上利用されているブログ・CMS(通称MT)
• MTタグ組み合わせでロジック生成
• テンプレートとDBが完全に分離している
(MVCライク)
• プラグインで拡張可能
• どんなコードも生成可能
最新10件のブログ記事をリンク付きで生成
<ul>
<MT:Entries limit="10">
<li>
<a href="<MT:EntryPermalink>">
<MT:EntryTitle>
</a>
</li>
</MT:Entries>
</ul>
• 静的生成でhtmlを出力
(スタティックパブリッシング)
• 動的生成も対応可能
(ダイナミックパブリッシング)
ビジネスユーザーに絶大な支持
• 日経平均225社の半分以上がMTユーザー
• 国内導入企業は5万件超
Movable Type と kintone の意外な関係
日本に広がるMTコミュニティ
• MT蝦夷
• MT東北
• MT東京
• MTなごや
• MT愛媛
• MT鹿児島
• MT関西
• MT広島
• MT福岡
• MT長野
• MT ∗/ NIIGATA(新潟)
• MT SAGA
• MT 熊本
kintone café
• 2013年11月に開始、すでに全国17拠点
実は、kintone caféは
• kintone café はMTコミュニティの影響を受けて立ち上がった
–MT Café が札幌で開催
=> kintoneでもこんなコミュニティがあると嬉しい
–北海道の札幌で第1回め
• kintoneコミュニティの広がりを作るきっかけに
AWS Cloud Roadshow
というわけで
• Movable Type と kintone には意外な縁があるのです
• これからもよろしくお願いします!
Movable Type と kintoneを連携して
フォームデータを蓄積する
今回のゴール
Movable Type で
htmlフォームと
登録用プログラムを
生成
登録用プログラムから
REST API経由で
kintoneへデータ送信
htmlフォームから
登録用プログラムに
データ受け渡し
Movable Type と kintone を連携するメリット
• 収集したデータを公開サーバーと分離
–情報保護につながる
• データをkintoneの機能で分析
–収集データのデータベース化
• エンタープライズ企業への提案
–オープンソースや海外のSaaSはNGというケース
ハンズオン手順
• kintoneの操作
–アプリ作成
–フォーム定義
• Movable Typeの操作
–テンプレート作成
–フォーム出力
kintoneの準備
テンプレートのインポート準備
• システム管理者アカウントでkintoneにログインし、「kintoneシステム管理」「
アプリテンプレート」の順に進みます。
アプリの読み込み
• アプリのテンプレート画面で、先ほどダウンロードしたファイルから[
mt_kintone.zip]という名前のzipファイルを読み込みます。
アプリの読み込み
• 「Movable Type x kintone ハンズオンセミナー用」というテンプレートが読み
込まれていれば完了です。
新規アプリの作成
• ホーム画面に戻り、テンプレートからアプリの作成を行います。
ハンズオン用テンプレートの選択
• 「Movable Type x kintone ハンズオンセミナー用」テンプレートを選択してア
プリを作成します。
アプリ管理
• 右上の「kintoneの操作と設定」から「アプリ管理」を選択します。
アプリIDの確認
• アプリ一覧の中から「お問い合わせフォーム」のアプリIDを確認してこれを覚
えておきます。
Movable Type の設定
今回のゴール
Movable Type で
htmlフォームと
登録用プログラムを
生成
登録用プログラムから
REST API経由で
kintoneへデータ送信
htmlフォームから
登録用プログラムに
データ受け渡し
Movable Type のアカウント確認
• 先ほどダウンロードしたファイルの中から[mt_template.zip]という圧縮ファイ
ルを解凍します。
• 配布したアカウント情報を元に、管理画面へアクセスし、サインインします。
サインイン
• サインイン後、ダッシュボードに表示されている
「My First Website」を選択します
ウェブサイトの確認
• 画面右上のアイコンをクリックすると、今回ハンズオンで利用するサイトが表
示されます。表示が問題ないか確認してください。
テンプレート管理画面
• 左サイドの操作メニューから [デザイン] => [テンプレート]を選択して、
Movable Type のテンプレート設定画面に移動します。
新規生成
• [インデックステンプレートの作成] をクリックします。
アンケートフォームの生成
• ダウンロードしたファイルから[form.txt]を開き、中身をまるごと貼り付けしま
す。
• 名前は「アンケートフォーム」とします。
テンプレートの保存
• 貼り付けが終わったら、画面下部の「テンプレートの設定」を開き、[出力ファ
イル名]を[form.html]と入力します。
• [保存]ボタンを押して、データを保存します。
再構築してhtmlを生成する
• 保存が終わったら[再構築]を行い、htmlファイルを生成します。
• 再構築が終了したら、画面右部の[ショートカット]から[公開されたテンプレー
トを確認]をクリックします。
• フォームページが確認できます。
プログラムの作成
• 続いて、kintoneへ投稿するためのプログラムファイルを生成します
• [インデックステンプレートの作成] をクリックします
テンプレート設定
• ダウンロードしたファイルから[post.txt]を開き、中身をまるごと貼り付けしま
す。
• 名前は「投稿用プログラム」とします。
kintoneサブドメインの設定
• 貼付けしたコードの3行目を、今回のハンズオンで利用するkintoneのサブド
メインに変更します。
皆さんが利用中の
kintoneのサブドメインに変更
kintoneアプリIDの設定
• 貼付けしたコードの4行目を、先ほどkintoneで確認したアプリIDに変更しま
す。
kintoneのアプリIDに変更
(数字)
ID、パスワードの設定
• 5行目、6行目を、kintoneのアプリに対して投稿権限を持つユーザーのID、
パスワードに変更します。
kintoneのID、パスワードへ
変更する
プログラムテンプレートの保存
• 修正が終わったら、画面下部の「テンプレートの設定」を開き、[出力ファイル
名]を[post.php]と入力します。
• [保存]ボタンを押して、データを保存します。
再構築と確認
• 保存が終わったら[再構築]を行い、phpファイルを生成します。
• 再構築が終了したら、画面右部の[ショートカット]から[公開されたテンプレー
トを確認]をクリックします。
• ページが表示されたらプログラムが生成されています。
–(フォーム外からのアクセスなのでエラーになりますが問題ありません)
データ送信のテスト
• 公開した[アンケートフォーム]から、データ入力後、送信します。
• 登録完了のメッセージが表示されたら送信成功です。
kintoneアプリの確認
• 投稿が終わったら、kintoneに作成したアプリの一覧を確認しましょう。投稿し
たデータが反映されていれば成功です。
kintoneの
REST APIを利用する際のポイント
今回のコード
• 以下のドキュメントを元に作成しました
• kintone API
–https://cybozudev.zendesk.com/hc/ja/categories/200147600
• レコードの登録
–https://cybozudev.zendesk.com/hc/ja/articles/202166160-
%E3%83%AC%E3%82%B3%E3%83%BC%E3%83%89%E3%81%AE%E7%99%BB%E9%8C%B2-
POST-
ハンズオンプログラム作成中の所感
• REST APIへデータを登録する際は、型を確認する
–データ登録の際はアプリからデータを取得
–RESTの型を確認して合わせるようにjsonデータを生成
• kintoneの日付データはISO8601形式で登録
• ID/パスワードの利用に抵抗がある場合はトークンを利用
–トークン利用の際はアプリの設定=>アクセス権 で設定を
kintoneの設定
• アプリ作成ユーザーとデータ登録ユーザーは分けたほうが良い
–権限を分けることでセキュアな運用につながる
• 権限設定は運用前に見直す
–不必要な権限は付与しない
アプリのアクセス権
Movable Type のまとめ
Movable Type の特徴まとめ
• どんな種類のファイルも生成可能
–html、php、Java、JavaScript、CSS
• 要件に応じたサイト構築ができる
• セキュリティポリシーに沿ったCMS構築が可能
• REST型APIを実装している
–kintone から Movable Type にデータを登録することも可能
• アプリケーションと生成データを分離できるため、様々なサーバー構成に対
して柔軟に対応できる
基本的な構成
公開サーバー兼
CMSサーバー
管理者
閲覧者
(サイト訪問者)
ステージング環境
ステージング
サーバー兼
CMSサーバー
公開
サーバー
管理者 閲覧者
(サイト訪問者)
冗長構成
CMS
サーバー
公開
サーバー
(冗長構成)
ロード
バランサ
クラウド環境
–CMSサーバーをVMイメージで構築(Amazon EC2など)
–公開ページはコンテンツサーバーで構築
–AmazonS3 (Azure Webサイト) など
VMサーバー
AmazonEC2など
Amazon S3など
さらに詳しくは
• ぜひウェブサイトをご覧ください!
• http://www.sixapart.jp/movabletype/
Movable Typeの Data API
• Movable Type にもREST型のAPIがあります。
• MTのデータをCRUD(Create、Read、Update、Delete)操作できます
• ぜひAPIを触ってみてください!
• http://www.sixapart.jp/movabletype/data-api/
• http://www.sixapart.jp
• http://www.movabletype.jp

More Related Content

Similar to 20160527 kintone mt_handson_publish

20170314 aws handson
20170314 aws handson20170314 aws handson
20170314 aws handsonSix Apart
 
20170425 aws handson
20170425 aws handson20170425 aws handson
20170425 aws handsonSix Apart
 
20170926 aws handson_public
20170926 aws handson_public20170926 aws handson_public
20170926 aws handson_publicSix Apart
 
20180228 jazug
20180228 jazug20180228 jazug
20180228 jazugSix Apart
 
20180228 aws handson_public
20180228 aws handson_public20180228 aws handson_public
20180228 aws handson_publicSix Apart
 
20180709 aws handson_public
20180709 aws handson_public20180709 aws handson_public
20180709 aws handson_publicSix Apart
 
20170801 monaca ug_lt_public
20170801 monaca ug_lt_public20170801 monaca ug_lt_public
20170801 monaca ug_lt_publicSix Apart
 
20170624 cms idobata_kaigi
20170624 cms idobata_kaigi20170624 cms idobata_kaigi
20170624 cms idobata_kaigiSix Apart
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 OsakaYuki Okada
 
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズkintone papers
 
20180709 pronet study
20180709 pronet study20180709 pronet study
20180709 pronet studySix Apart
 
Contact は奥が深い - Mautic Meetup Nagoya #4
Contact は奥が深い - Mautic Meetup Nagoya #4 Contact は奥が深い - Mautic Meetup Nagoya #4
Contact は奥が深い - Mautic Meetup Nagoya #4 Katz Ueno
 
20180628 sappor alibaba_event
20180628 sappor alibaba_event20180628 sappor alibaba_event
20180628 sappor alibaba_eventSix Apart
 
170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathon170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathonkintone papers
 
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017Yuki Okada
 

Similar to 20160527 kintone mt_handson_publish (17)

20170314 aws handson
20170314 aws handson20170314 aws handson
20170314 aws handson
 
20170425 aws handson
20170425 aws handson20170425 aws handson
20170425 aws handson
 
20170926 aws handson_public
20170926 aws handson_public20170926 aws handson_public
20170926 aws handson_public
 
20180228 jazug
20180228 jazug20180228 jazug
20180228 jazug
 
20180228 aws handson_public
20180228 aws handson_public20180228 aws handson_public
20180228 aws handson_public
 
20180709 aws handson_public
20180709 aws handson_public20180709 aws handson_public
20180709 aws handson_public
 
20170801 monaca ug_lt_public
20170801 monaca ug_lt_public20170801 monaca ug_lt_public
20170801 monaca ug_lt_public
 
Staticwp 20131013
Staticwp 20131013Staticwp 20131013
Staticwp 20131013
 
20170624 cms idobata_kaigi
20170624 cms idobata_kaigi20170624 cms idobata_kaigi
20170624 cms idobata_kaigi
 
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osakaサイボウズのオープンソースへの取り組み - OSC 2018 Osaka
サイボウズのオープンソースへの取り組み - OSC 2018 Osaka
 
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ
【デブサミ2017】45分で早わかり!kintoneの基本とカスタマイズ
 
20180709 pronet study
20180709 pronet study20180709 pronet study
20180709 pronet study
 
Contact は奥が深い - Mautic Meetup Nagoya #4
Contact は奥が深い - Mautic Meetup Nagoya #4 Contact は奥が深い - Mautic Meetup Nagoya #4
Contact は奥が深い - Mautic Meetup Nagoya #4
 
CVPR 2017 速報
CVPR 2017 速報CVPR 2017 速報
CVPR 2017 速報
 
20180628 sappor alibaba_event
20180628 sappor alibaba_event20180628 sappor alibaba_event
20180628 sappor alibaba_event
 
170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathon170520 DataSpider DevConn Hackathon
170520 DataSpider DevConn Hackathon
 
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
最高のリモート開発を実現するために取り組んでいること - Cybozu Tech Conference 2017
 

More from Six Apart

20180723 okubo mtc_loud_handson
20180723 okubo mtc_loud_handson20180723 okubo mtc_loud_handson
20180723 okubo mtc_loud_handsonSix Apart
 
20180702 okubo mtc_loud_handson
20180702 okubo mtc_loud_handson20180702 okubo mtc_loud_handson
20180702 okubo mtc_loud_handsonSix Apart
 
20180625 dev relenglish_public
20180625 dev relenglish_public20180625 dev relenglish_public
20180625 dev relenglish_publicSix Apart
 
20180411 monaca ug_lt
20180411 monaca ug_lt20180411 monaca ug_lt
20180411 monaca ug_ltSix Apart
 
20180326 mt azure_handson_translation
20180326 mt azure_handson_translation20180326 mt azure_handson_translation
20180326 mt azure_handson_translationSix Apart
 
20180214 okubo mt_cloud_handson
20180214 okubo mt_cloud_handson20180214 okubo mt_cloud_handson
20180214 okubo mt_cloud_handsonSix Apart
 
20170922 cms security_public
20170922 cms  security_public20170922 cms  security_public
20170922 cms security_publicSix Apart
 
20170921 smartphone apli_seminar_public
20170921 smartphone apli_seminar_public20170921 smartphone apli_seminar_public
20170921 smartphone apli_seminar_publicSix Apart
 
20170905 dev rellt_public
20170905 dev rellt_public20170905 dev rellt_public
20170905 dev rellt_publicSix Apart
 
20170602 aws lt_public
20170602 aws lt_public20170602 aws lt_public
20170602 aws lt_publicSix Apart
 
20170519 cms security_public
20170519 cms  security_public20170519 cms  security_public
20170519 cms security_publicSix Apart
 
20170415 mttokyo handson
20170415 mttokyo handson20170415 mttokyo handson
20170415 mttokyo handsonSix Apart
 
20170221 aws handson
20170221 aws handson20170221 aws handson
20170221 aws handsonSix Apart
 
20170201 dev rel_public
20170201 dev rel_public20170201 dev rel_public
20170201 dev rel_publicSix Apart
 
20161219 aws handson._publicpptx
20161219 aws handson._publicpptx20161219 aws handson._publicpptx
20161219 aws handson._publicpptxSix Apart
 
20161202 lte publish
20161202 lte publish20161202 lte publish
20161202 lte publishSix Apart
 

More from Six Apart (16)

20180723 okubo mtc_loud_handson
20180723 okubo mtc_loud_handson20180723 okubo mtc_loud_handson
20180723 okubo mtc_loud_handson
 
20180702 okubo mtc_loud_handson
20180702 okubo mtc_loud_handson20180702 okubo mtc_loud_handson
20180702 okubo mtc_loud_handson
 
20180625 dev relenglish_public
20180625 dev relenglish_public20180625 dev relenglish_public
20180625 dev relenglish_public
 
20180411 monaca ug_lt
20180411 monaca ug_lt20180411 monaca ug_lt
20180411 monaca ug_lt
 
20180326 mt azure_handson_translation
20180326 mt azure_handson_translation20180326 mt azure_handson_translation
20180326 mt azure_handson_translation
 
20180214 okubo mt_cloud_handson
20180214 okubo mt_cloud_handson20180214 okubo mt_cloud_handson
20180214 okubo mt_cloud_handson
 
20170922 cms security_public
20170922 cms  security_public20170922 cms  security_public
20170922 cms security_public
 
20170921 smartphone apli_seminar_public
20170921 smartphone apli_seminar_public20170921 smartphone apli_seminar_public
20170921 smartphone apli_seminar_public
 
20170905 dev rellt_public
20170905 dev rellt_public20170905 dev rellt_public
20170905 dev rellt_public
 
20170602 aws lt_public
20170602 aws lt_public20170602 aws lt_public
20170602 aws lt_public
 
20170519 cms security_public
20170519 cms  security_public20170519 cms  security_public
20170519 cms security_public
 
20170415 mttokyo handson
20170415 mttokyo handson20170415 mttokyo handson
20170415 mttokyo handson
 
20170221 aws handson
20170221 aws handson20170221 aws handson
20170221 aws handson
 
20170201 dev rel_public
20170201 dev rel_public20170201 dev rel_public
20170201 dev rel_public
 
20161219 aws handson._publicpptx
20161219 aws handson._publicpptx20161219 aws handson._publicpptx
20161219 aws handson._publicpptx
 
20161202 lte publish
20161202 lte publish20161202 lte publish
20161202 lte publish
 

20160527 kintone mt_handson_publish