Upload
hajime-fujimoto
View
1.061
Download
0
Embed Size (px)
Citation preview
PHPや VBAでMovable Typeを操作しようData API Library for PHP/ VBAのご紹介
2016/2/22
【 MT 東京 -21 】 Data API 3.0
藤本 壱
2
今日のアジェンダ• 自己紹介• Data API Library for PHP のご紹介• Data API Library for VBA のご紹介• 注意点• まとめ
3
自己紹介
4
自己紹介その 1• 藤本 壱(ふじもと はじめ)• 兵庫県伊丹市出身• 群馬県前橋市在住
東京埼玉
山梨神奈川
栃木茨城
千葉
5
自己紹介その 2
• 本職は PC 系のフリーライター
• 2004 年秋から Movable Type ユーザー• さまざまなプラグインを開発
6
Data API Library for PHP のご紹介
7
Movable Type でありがちな話• Movable Type は Perl でできている• PHP ならできるが Perl は無理• PHP でいじれるなら触っても良いが…
そんなあなたに
Data APILibraryFor PHP
Data API Library for PHP• PHP で Data API を扱うライブラリ• Data API でできることをカバー• SixApart 謹製 JavaScript ライブラリに近い構文• 以下からダウンロード
http://bit.ly/mt_dataapi_php
10
Data API Library for PHP でできること• PHP ベースの独自の管理画面の開発• PHP 製の他の CMS との連携• CLI 版 PHP でのバッチ処理開発
11
デモをご覧ください
12
初期化require_once('path/to/mt-data-api.php');$api = new MTDataAPI( 'http://your-host//path-to-mt/mt-data-api.cgi', ' クライアント ID' );
• Data API のオブジェクトを生成
13
データの取得• list 系/ get 系のメソッドオブジェクト 複数 (list系 ) 単数 (get系 )
記事 listEntries getEntry
ウェブページ listPages getPage
カテゴリ listCategories getCategory
フォルダ listFolders getFolder
アイテム listAssets getAsset
14
データの取得• パラメータ• list 系ではサイト(ウェブサイト/ブログ )ID や親オブジェクトの ID• get 系ではサイトの ID や対象のオブジェクトの ID
• 戻り値• list 系では「 items 」の要素がオブジェクトの配列• get 系では戻り値がオブジェクト
15
データ取得の例$response = $api->listEntries( サイト ID);if (isset($response['error'])) { エラー処理}else { $entries = $response['items']; 各記事を処理}
• 記事を取得
16
認証$response = $api->authenticate( array('username' => 'foo', 'password' => 'bar') );if (isset($response['error'])) { 認証に失敗したときの処理}認証に成功した時の処理
• 未公開情報の処理の際には認証が必要
17
データの作成• create 系のメソッド
オブジェクト メソッド記事 createEntry
ウェブページ createPage
カテゴリ createCategory
フォルダ createFolder
18
データの作成• パラメータ• 親の ID とオブジェクトを表す連想配列
• 戻り値• 成功すればそのオブジェクト• 失敗すればエラー値
19
データの作成の例$entry = array( 'title' => ' 記事のタイトル ', 'body' => ' 記事の本文 ');$response = $api->createEntry( サイト ID, $entry);if (isset($response['error'])) { 記事作成失敗時の処理}else { 記事作成成功時の処理}
20
データの更新• update 系のメソッド
オブジェクト メソッド記事 updateEntry
ウェブページ updatePage
カテゴリ updateCategory
フォルダ updateFolder
アイテム updateAsset
21
データの更新• パラメータ• 親の ID /オブジェクトの ID /オブジェクトを表す連想配列
• 戻り値• 成功すればそのオブジェクト• 失敗すればエラー値
22
データの更新の例$entry = array('title' => ' 更新後のタイトル ');$response = $api->updateEntry( サイト ID, 記事 ID, $entry);if (isset($response['error'])) { 記事更新失敗時の処理}else { 記事更新成功時の処理}
23
データの削除• delete 系のメソッド
オブジェクト メソッド記事 deleteEntry
ウェブページ deletePage
カテゴリ deleteCategory
フォルダ deleteFolder
アイテム deleteAsset
24
データの削除• パラメータ• 親の ID /オブジェクトの ID
• 戻り値• 成功すれば削除されたオブジェクト• 失敗すればエラー値
25
データの削除の例$response = $api->deleteEntry( サイト ID, 記事ID);if (isset($response['error'])) { 記事削除失敗時の処理}else { 記事削除成功時の処理}
26
Data API Library for VBA のご紹介
Movable Type でありがちな話②• Excel や Access で蓄えたデータを Movable Typeにインポートしたい• でも既存のインポートプラグインではかゆいところに手が届かない…
• Movable Type の記事等を Excel や Access で処理したい• クライアントが Excel に慣れすぎて MT の管理画面を嫌がる• VBA なら分かるけど Perl は苦手…
そんなあなたに
Data APILibraryFor VBA
Data API Library for VBA• VBA(Visual Basic for Applications) で Data
API を扱うライブラリ• 基本的な仕組みは PHP ライブラリと同様• VBA でプログラムを組んで Office アプリと Movable Type を連携• 以下からダウンロード
http://bit.ly/mt_dataapi_vba
デモをご覧ください
31
準備• Excel 等のファイルにライブラリを組み込む• 参照設定
32
プログラミングの方式• PHP 用ライブラリと似た仕組み• 以下のようにしてメソッドを実行api.send(" メソッド名 ", パラメータ )
初期化と認証' 初期化Set api = New MTDataAPIapi.init BASE, CLIENT_ID ' 認証Set params = New Scripting.Dictionaryparams("username") = USERNAMEparams("password") = PASSWORDSet response = api.send("authenticate", params)
記事作成For i = 2 To 5 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
35
注意点
36
注意点• PHP 版では file_get_contents 関数を使える環境が必要• 同期処理• レスポンスが返ってくるまで処理が停止
• 複数の Data API の組み合わせ処理ではオーバーヘッド大• 実質的に PSGI 必須• 1回のリクエストで複数の API を処理できれば… (お願い中の人 )
37
まとめ
38
まとめ• Data API Library for PHP で Movable Typeを PHP で操作可能• Data API Library for VBA で Movable Typeを VBA で操作可能• 同期処理を考慮してご利用は計画的に
39
ご清聴ありがとうございました