SlideShare une entreprise Scribd logo
1  sur  39
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://bit.ly/mt_dataapi_php
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',
'クライアントID'
);
• Data APIのオブジェクトを生成
データの取得
• list系/get系のメソッド
13
オブジェクト 複数(list系) 単数(get系)
記事 listEntries getEntry
ウェブページ listPages getPage
カテゴリ listCategories getCategory
フォルダ listFolders getFolder
アイテム listAssets getAsset
データの取得
• パラメータ
• list系ではサイト(ウェブサイト/ブログ)IDや親
オブジェクトのID
• get系ではサイトのIDや対象のオブジェクトの
ID
• 戻り値
• list系では「items」の要素がオブジェクトの配列
• get系では戻り値がオブジェクト
14
データ取得の例
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'])) {
認証に失敗したときの処理
}
認証に成功した時の処理
• 未公開情報の処理の際には認証が必要
データの作成
• create系のメソッド
17
オブジェクト メソッド
記事 createEntry
ウェブページ createPage
カテゴリ createCategory
フォルダ createFolder
データの作成
• パラメータ
• 親のIDとオブジェクトを表す連想配列
• 戻り値
• 成功すればそのオブジェクト
• 失敗すればエラー値
18
データの作成の例
19
$entry = array(
'title' => '記事のタイトル',
'body' => '記事の本文'
);
$response = $api->createEntry(サイトID, $entry);
if (isset($response['error'])) {
記事作成失敗時の処理
}
else {
記事作成成功時の処理
}
データの更新
• update系のメソッド
20
オブジェクト メソッド
記事 updateEntry
ウェブページ updatePage
カテゴリ updateCategory
フォルダ updateFolder
アイテム updateAsset
データの更新
• パラメータ
• 親のID/オブジェクトのID/オブジェクトを表
す連想配列
• 戻り値
• 成功すればそのオブジェクト
• 失敗すればエラー値
21
データの更新の例
22
$entry = array('title' => '更新後のタイトル');
$response =
$api->updateEntry(サイトID, 記事ID, $entry);
if (isset($response['error'])) {
記事更新失敗時の処理
}
else {
記事更新成功時の処理
}
データの削除
• delete系のメソッド
23
オブジェクト メソッド
記事 deleteEntry
ウェブページ deletePage
カテゴリ deleteCategory
フォルダ deleteFolder
アイテム deleteAsset
データの削除
• パラメータ
• 親の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の記事等をExcelやAccessで処理し
たい
• クライアントがExcelに慣れすぎてMTの管理画面
を嫌がる
• VBAなら分かるけどPerlは苦手…
そんなあなたに
Data API
Library
For VBA
Data API Library for VBA
• VBA(Visual Basic for Applications)でData
APIを扱うライブラリ
• 基本的な仕組みはPHPライブラリと同様
• VBAでプログラムを組んでOfficeアプリと
Movable Typeを連携
• 以下からダウンロード
http://bit.ly/mt_dataapi_vba
デモをご覧ください
準備
• Excel等のファイルにライブラリを組み込む
• 参照設定
31
プログラミングの方式
• PHP用ライブラリと似た仕組み
• 以下のようにしてメソッドを実行
32
api.send("メソッド名", パラメータ)
初期化と認証
' 初期化
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 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
注意点
• PHP版ではfile_get_contents関数を使える環境が
必要
• 同期処理
• レスポンスが返ってくるまで処理が停止
• 複数のData APIの組み合わせ処理ではオーバー
ヘッド大
• 実質的にPSGI必須
• 1回のリクエストで複数のAPIを処理できれば…(お
願い中の人)
36
まとめ
37
まとめ
• Data API Library for PHPでMovable Typeを
PHPで操作可能
• Data API Library for VBAでMovable Typeを
VBAで操作可能
• 同期処理を考慮してご利用は計画的に
38
ご清聴ありがとうございました
39

Contenu connexe

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

Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイント
Shuichi Yukimoto
 

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

bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩bottleで始めるWEBアプリの最初の一歩
bottleで始めるWEBアプリの最初の一歩
 
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
LIFFとの連携でさらに強力に。こんなに使えるLINEログインLIFFとの連携でさらに強力に。こんなに使えるLINEログイン
LIFFとの連携でさらに強力に。こんなに使えるLINEログイン
 
マイクロサービスにおける 非同期アーキテクチャ
マイクロサービスにおける非同期アーキテクチャマイクロサービスにおける非同期アーキテクチャ
マイクロサービスにおける 非同期アーキテクチャ
 
Yapc2012ltthon
Yapc2012ltthonYapc2012ltthon
Yapc2012ltthon
 
Phpのはなし
PhpのはなしPhpのはなし
Phpのはなし
 
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
PHPerのための(不遇に負けない)Selenium入門 @ FuelPHP&CodeIgniter ユーザの集い #9
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
Hannari python#27
Hannari python#27Hannari python#27
Hannari python#27
 
LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409LINE Commumity Microsoft_ConversationalAI_20200409
LINE Commumity Microsoft_ConversationalAI_20200409
 
How Would You Like Component Management System
How Would You Like Component Management SystemHow Would You Like Component Management System
How Would You Like Component Management System
 
Soft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイントSoft layer APIの使い方と実装のポイント
Soft layer APIの使い方と実装のポイント
 
第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)第45回PHP勉強会(里洋平)
第45回PHP勉強会(里洋平)
 
HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」
HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」
HTML5/JS勉強会「HTML5/JavaScript ではじめるIoT」
 
HTML5/JavaScript ではじめるIoT
HTML5/JavaScript ではじめるIoTHTML5/JavaScript ではじめるIoT
HTML5/JavaScript ではじめるIoT
 
びわ湖花火大会のオープンデータアプリを作ってみて
びわ湖花火大会のオープンデータアプリを作ってみてびわ湖花火大会のオープンデータアプリを作ってみて
びわ湖花火大会のオープンデータアプリを作ってみて
 
MF GeeksNight pplogの話
MF GeeksNight pplogの話MF GeeksNight pplogの話
MF GeeksNight pplogの話
 
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
LibreOfficeとLibrePCについて in SIGGRAPH Asia 2015
 
PHPの今とこれから2006
PHPの今とこれから2006PHPの今とこれから2006
PHPの今とこれから2006
 
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
ホットペッパービューティーにおけるモバイルアプリ向けAPIのBFF/Backend分割
 
勉強会資料#1
勉強会資料#1勉強会資料#1
勉強会資料#1
 

Plus de Hajime Fujimoto

Plus de Hajime Fujimoto (20)

Movable Typeでロボットを動かす?AIスピーカーをしゃべらせる?Data APIでMovable TypeとIoTをFUSION
Movable Typeでロボットを動かす?AIスピーカーをしゃべらせる?Data APIでMovable TypeとIoTをFUSIONMovable Typeでロボットを動かす?AIスピーカーをしゃべらせる?Data APIでMovable TypeとIoTをFUSION
Movable Typeでロボットを動かす?AIスピーカーをしゃべらせる?Data APIでMovable TypeとIoTをFUSION
 
コンテンツタイプの活用と拡張
コンテンツタイプの活用と拡張コンテンツタイプの活用と拡張
コンテンツタイプの活用と拡張
 
PowerCMSとIoTの連携
PowerCMSとIoTの連携PowerCMSとIoTの連携
PowerCMSとIoTの連携
 
Connect with Data API
Connect with Data APIConnect with Data API
Connect with Data API
 
Objecttreeプラグイン&ObjectRelationプラグインのご紹介
Objecttreeプラグイン&ObjectRelationプラグインのご紹介Objecttreeプラグイン&ObjectRelationプラグインのご紹介
Objecttreeプラグイン&ObjectRelationプラグインのご紹介
 
Movable Typeの権限と承認フロー
Movable Typeの権限と承認フローMovable Typeの権限と承認フロー
Movable Typeの権限と承認フロー
 
2つの「Layout」プラグインでMovable Typeをパワーアップ
2つの「Layout」プラグインでMovable Typeをパワーアップ2つの「Layout」プラグインでMovable Typeをパワーアップ
2つの「Layout」プラグインでMovable Typeをパワーアップ
 
はじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオンはじめよう!MovableType.net ハンズオン
はじめよう!MovableType.net ハンズオン
 
JavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData APIJavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData API
 
JavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData APIJavaScriptテンプレートエンジンで活かすData API
JavaScriptテンプレートエンジンで活かすData API
 
Data APIの背景と活用方法 MTCafe Nagoya Ver.
Data APIの背景と活用方法 MTCafe Nagoya Ver.Data APIの背景と活用方法 MTCafe Nagoya Ver.
Data APIの背景と活用方法 MTCafe Nagoya Ver.
 
Movable Type 6.0をできるだけ安く使う方法
Movable Type 6.0をできるだけ安く使う方法Movable Type 6.0をできるだけ安く使う方法
Movable Type 6.0をできるだけ安く使う方法
 
Movable Type 6の新機能 Data APIの活用法
Movable Type 6の新機能 Data APIの活用法Movable Type 6の新機能 Data APIの活用法
Movable Type 6の新機能 Data APIの活用法
 
Data APIの基本
Data APIの基本Data APIの基本
Data APIの基本
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable Type
 
Data APIの背景と活用方法
Data APIの背景と活用方法Data APIの背景と活用方法
Data APIの背景と活用方法
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable Type
 
Vagrantのすすめ
VagrantのすすめVagrantのすすめ
Vagrantのすすめ
 
WordPress on Movable Type
WordPress on Movable TypeWordPress on Movable Type
WordPress on Movable Type
 
WordPress on movable type(WordCamp Kobe 2013)
WordPress on movable type(WordCamp Kobe 2013)WordPress on movable type(WordCamp Kobe 2013)
WordPress on movable type(WordCamp Kobe 2013)
 

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