39
PHP や VBA や Movable Type ややややや や Data API Library for PHP VBA やややや 2016/2/22 MT 東東 -21 Data API 3.0 東東 東

PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

Embed Size (px)

Citation preview

Page 1: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

PHPや VBAでMovable Typeを操作しようData API Library for PHP/ VBAのご紹介

2016/2/22

【 MT 東京 -21 】 Data API 3.0

藤本 壱

Page 2: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

2

今日のアジェンダ• 自己紹介• Data API Library for PHP のご紹介• Data API Library for VBA のご紹介• 注意点• まとめ

Page 3: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

3

自己紹介

Page 4: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

4

自己紹介その 1• 藤本 壱(ふじもと はじめ)• 兵庫県伊丹市出身• 群馬県前橋市在住

東京埼玉

山梨神奈川

栃木茨城

千葉

Page 5: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

5

自己紹介その 2

• 本職は PC 系のフリーライター

• 2004 年秋から Movable Type ユーザー• さまざまなプラグインを開発

Page 6: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

6

Data API Library for PHP のご紹介

Page 7: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

7

Movable Type でありがちな話• Movable Type は Perl でできている• PHP ならできるが Perl は無理• PHP でいじれるなら触っても良いが…

Page 8: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

そんなあなたに

Data APILibraryFor PHP

Page 9: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

Data API Library for PHP• PHP で Data API を扱うライブラリ• Data API でできることをカバー• SixApart 謹製 JavaScript ライブラリに近い構文• 以下からダウンロード

http://bit.ly/mt_dataapi_php

Page 10: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

10

Data API Library for PHP でできること• PHP ベースの独自の管理画面の開発• PHP 製の他の CMS との連携• CLI 版 PHP でのバッチ処理開発

Page 11: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

11

デモをご覧ください

Page 12: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

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 のオブジェクトを生成

Page 13: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

13

データの取得• list 系/ get 系のメソッドオブジェクト 複数 (list系 ) 単数 (get系 )

記事 listEntries getEntry

ウェブページ listPages getPage

カテゴリ listCategories getCategory

フォルダ listFolders getFolder

アイテム listAssets getAsset

Page 14: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

14

データの取得• パラメータ• list 系ではサイト(ウェブサイト/ブログ )ID や親オブジェクトの ID• get 系ではサイトの ID や対象のオブジェクトの ID

• 戻り値• list 系では「 items 」の要素がオブジェクトの配列• get 系では戻り値がオブジェクト

Page 15: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

15

データ取得の例$response = $api->listEntries( サイト ID);if (isset($response['error'])) { エラー処理}else { $entries = $response['items']; 各記事を処理}

• 記事を取得

Page 16: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

16

認証$response = $api->authenticate( array('username' => 'foo', 'password' => 'bar') );if (isset($response['error'])) { 認証に失敗したときの処理}認証に成功した時の処理

• 未公開情報の処理の際には認証が必要

Page 17: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

17

データの作成• create 系のメソッド

オブジェクト メソッド記事 createEntry

ウェブページ createPage

カテゴリ createCategory

フォルダ createFolder

Page 18: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

18

データの作成• パラメータ• 親の ID とオブジェクトを表す連想配列

• 戻り値• 成功すればそのオブジェクト• 失敗すればエラー値

Page 19: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

19

データの作成の例$entry = array( 'title' => ' 記事のタイトル ', 'body' => ' 記事の本文 ');$response = $api->createEntry( サイト ID, $entry);if (isset($response['error'])) { 記事作成失敗時の処理}else { 記事作成成功時の処理}

Page 20: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

20

データの更新• update 系のメソッド

オブジェクト メソッド記事 updateEntry

ウェブページ updatePage

カテゴリ updateCategory

フォルダ updateFolder

アイテム updateAsset

Page 21: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

21

データの更新• パラメータ• 親の ID /オブジェクトの ID /オブジェクトを表す連想配列

• 戻り値• 成功すればそのオブジェクト• 失敗すればエラー値

Page 22: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

22

データの更新の例$entry = array('title' => ' 更新後のタイトル ');$response = $api->updateEntry( サイト ID, 記事 ID, $entry);if (isset($response['error'])) { 記事更新失敗時の処理}else { 記事更新成功時の処理}

Page 23: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

23

データの削除• delete 系のメソッド

オブジェクト メソッド記事 deleteEntry

ウェブページ deletePage

カテゴリ deleteCategory

フォルダ deleteFolder

アイテム deleteAsset

Page 24: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

24

データの削除• パラメータ• 親の ID /オブジェクトの ID

• 戻り値• 成功すれば削除されたオブジェクト• 失敗すればエラー値

Page 25: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

25

データの削除の例$response = $api->deleteEntry( サイト ID, 記事ID);if (isset($response['error'])) { 記事削除失敗時の処理}else { 記事削除成功時の処理}

Page 26: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

26

Data API Library for VBA のご紹介

Page 27: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

Movable Type でありがちな話②• Excel や Access で蓄えたデータを Movable Typeにインポートしたい• でも既存のインポートプラグインではかゆいところに手が届かない…

• Movable Type の記事等を Excel や Access で処理したい• クライアントが Excel に慣れすぎて MT の管理画面を嫌がる• VBA なら分かるけど Perl は苦手…

Page 28: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

そんなあなたに

Data APILibraryFor VBA

Page 29: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

Data API Library for VBA• VBA(Visual Basic for Applications) で Data

API を扱うライブラリ• 基本的な仕組みは PHP ライブラリと同様• VBA でプログラムを組んで Office アプリと Movable Type を連携• 以下からダウンロード

http://bit.ly/mt_dataapi_vba

Page 30: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

デモをご覧ください

Page 31: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

31

準備• Excel 等のファイルにライブラリを組み込む• 参照設定

Page 32: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

32

プログラミングの方式• PHP 用ライブラリと似た仕組み• 以下のようにしてメソッドを実行api.send(" メソッド名 ", パラメータ )

Page 33: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

初期化と認証' 初期化Set api = New MTDataAPIapi.init BASE, CLIENT_ID ' 認証Set params = New Scripting.Dictionaryparams("username") = USERNAMEparams("password") = PASSWORDSet response = api.send("authenticate", params)

Page 34: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

記事作成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

Page 35: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

35

注意点

Page 36: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

36

注意点• PHP 版では file_get_contents 関数を使える環境が必要• 同期処理• レスポンスが返ってくるまで処理が停止

• 複数の Data API の組み合わせ処理ではオーバーヘッド大• 実質的に PSGI 必須• 1回のリクエストで複数の API を処理できれば… (お願い中の人 )

Page 37: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

37

まとめ

Page 38: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

38

まとめ• Data API Library for PHP で Movable Typeを PHP で操作可能• Data API Library for VBA で Movable Typeを VBA で操作可能• 同期処理を考慮してご利用は計画的に

Page 39: PHPやVBAでMovable Typeを操作しようData API Library for PHP/VBAのご紹介

39

ご清聴ありがとうございました