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

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

1,558 views

Published on

2016年2月22日の「【MT東京-21】Data API 3.0」のセッションのスライドです。

Published in: Technology
  • Be the first to comment

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

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

×