狠狠撸

狠狠撸Share a Scribd company logo
Connect with Data API
2016/11/12
MTDDC Meetup TOKYO 2016
藤本 壱
今日のアジェンダ
? 自己绍介
? Data APIの概要
? 贰虫肠别濒との连携
? モバイルアプリのバックエンド
? Raspberry PIとの連携
? まとめ
自己绍介
自己绍介その1
? 藤本 壱(ふじもと はじめ)
? 群馬県前橋市在住
? 本職はPC系のフリーライター
? Movable Typeのプラグインを
多数開発
4
自己绍介その2
? ブログ「The Blog of H.Fujimoto」
http://www.h-fj.com/blog/
5
Data APIの概要
Data APIとは
? Movable Type 6で追加された機能
? RESTでMovable Typeのデータにアクセス
例)記事にアクセス
http://…/mt-data-api.cgi/v3/sites/X/entries/Y
? 処理結果はJSON
? プログラム言語を問わない
? 公式ライブラリあり(JavaScript/Swift)
JavaScriptライブラリのコードの例
var api = new MT.DataAPI({
baseUrl: 'http://…/mt-data-api.cgi',
clientId: 'example'
});
api.listEntries(site_id, function(response){
// response.itemsが記事の配列
});
Data APIの事例(Web製作向け)
? 各種の動的出力
? ページネーション
? 検索
? 独自の管理画面
Data APIの事例(Web製作向け)
? SixApartのごはんレシピ
http://makanai.sixapart.jp/
Data APIの事例(Web製作向け)
? 独自の管理画面
→ 「MT7を先取り!? DataAPI と Riot.js で作
るユーザフレンドリーなダッシュボード」の
セッション(15時~)
Web製作以外でのData API利用
? 理論的にはさまざまな応用が可能
? 事例がほとんどない
? 公式ライブラリも少ない
Web製作以外の事例をご紹介
贰虫肠别濒との连携
ありがちなこと
? ExcelやAccessで蓄えたデータをMovable Type
にインポートしたい
? でも既存のインポートプラグインでは
かゆいところに手が届かない…
? Movable Typeの記事等をExcelやAccessで処
理したい
? Movable Typeの管理画面は使わずに全部
Excelで済ませたい
? VBAなら分かるけどPerlは苦手…
そんなあなたに
Data API Library
For
VBA
Data API Library for VBA
? VBA(Visual Basic for Applications)でData
APIを扱うライブラリ
? SixApart謹製JavaScriptライブラリに近い構
文
? VBAでプログラムを組んでOfficeアプリと
Movable Typeを連携
デモをご覧ください
初期化と認証
' 初期化
Set api = New MTDataAPI
api.init BASE, CLIENT_ID
' 認証
Set params = New Scripting.Dictionary
params("username") = USERNAME
params("password") = PASSWORD
Set response = api.send("authenticate",
params)
記事作成部分
For i = 2 To 4
Set entry = New Scripting.Dictionary
entry("title") = Cells(i, 1).value
entry("body") = Cells(i, 2).value
entry("date") = api.convDate(Cells(i,3).value)
Set response = api.send("createEntry",
SITE_ID, entry)
Next
考えられる事例
? Accessと連携
? AccessのデータをMovable Typeに投入
? Wordと連携
? Wordで作成した文書をMovable Typeに投入し
てWeb化
? PowerPointとの連携
? スライドを画像に変換してMovable Typeに投
入
モバイルアプリのバックエンド
デモをご覧ください
? MTQuiz
→ Movable Typeに関する
クイズアプリ
クイズアプリの課題
? 出題するクイズをなるべく簡単に管理した
い
? アプリにクイズを埋め込むと管理が複雑化
? アプリとクイズデータを分離
? クイズデータをCMSで管理してインターネッ
ト経由で読み込み
Movable Type & Data API
Movable Typeでコンテンツを管理
? デモをご覧ください
Androidとの連携
Data API Library
For
Android
Data API Library for Android
? 拙作のData API用ライブラリ
? Androidのアプリに組み込む
? Volley(Google謹製HTTP通信ライブラリ)を
ベースに開発
認証
Map<String, String> params = new HashMap<String, String>();
params.put("username", USERNAME);
params.put("password", PASSWORD);
DataAPI.send("authenticate", params, new DataAPIListener() {
@Override
public void onResponse(JSONObject resp) {
// 認証成功時の処理
}
@Override
public void onError(VolleyError error) {
// 認証失敗時の処理
}
});
問題(記事)の読み込み
Map<String, String> params = new HashMap<String, String>();
params.put("limit",1);
params.put("offset",offset);
DataAPI.send("listEntries", SITE_ID, params,
new DataAPIListener() {
@Override
public void onResponse(JSONObject resp) {
// 読み込み成功時の処理
}
@Override
public void onError(VolleyError error) {
// 読み込み失敗時の処理
}
});
iOSとの連携
? Data API SDK for Swift
? シックスアパート公式
(関根元和氏作)
? Movable Type for iOSで利用
Swiftのコードの例
api.listSites(
success: {(result: [JSON]!, total:
Int!)-> Void in
// 通信成功時の処理
},
failure: {(error: JSON!)-> Void in
// 通信失敗時の処理
}
)
Raspberry PIとの連携
Raspberry PIの概要
? カードサイズのマイコン
? 安価(5,000円程度)
? センサー等の電子部品を接続可能
? IoT(Internet of Things)のベースとして利用
? Linuxが動作
? Raspbian(Debian系)
? 各種ディストリビューション
デモをご覧(お聞き)ください
? Movable Typeの記事を読み上げ
? 処理状況をLEDでお知らせ
状態 LED
記事読み込み中 赤
音声合成中 黄
音声再生中 緑
このシステムの構成
Raspberry PI
Movable Type
Open JTalk
Festival
(音声合成)
Data API
Data API Library for Python?
? Raspberry PIではPythonを多用(特に電子
工作関係)
? Data API Library for Pythonがあれば…
? Linuxで動作する言語なら何でも良いはず…
そこで
Data API Library
For
PHP
Data API Library for PHP
? 拙作のData API用ライブラリ
? PHPのプログラムからMovable Typeと通信
? PHPを含むWebページ
? PHPのスクリプト(コマンドラインから実行)
今回のスクリプト
require_once('mt-data-api.php');
…
… (初期化等)
…
$api = new MTDataAPI('http://…/mt-data-api.cgi', 'sample');
$response = $api->getEntry(SITE_ID, $entry_id);
if (isset($response['error'])) {
// エラー処理
}
else {
// $response['body']に文章
// Open JTalk/Festivalで音声合成
// aplayコマンドで再生
}
まとめ
CMSはWebだけのものではない
? CMS=Content Management System
? これまでのCMSはWebのコンテンツを管理
するもの
? スマートフォン/タブレットをはじめとしてコ
ンテンツの活用先が多様化
? Webコンテンツだけを管理する時代は終了
Data APIでWeb CMSから脱却
? Data APIでMovable Typeと様々なものを接
続可能
? Web以外にMovable Typeの使い道が広が
る
? 拙作ライブラリをぜひご利用ください
ご清聴ありがとうございました

More Related Content

Connect with Data API