MTのData APIを Xojo から利用するためのクラスを作った。
公開日 : 2014-01-18 19:29:37
世界でこれが必要な人の数はいったい何人なのだろうw
MTのData APIを Xojo から利用するためのクラスを作った。Mac/Win用のMTクライアントが簡単に作れる筈。今朝書いたのと違ってCURLを使わず、Xojoのネイティブなコードで書いたので、これはWindowsでも動くはず。
Synopsis
Dim DataAPI As MTDataAPI
DataAPI = New MTDataAPI
DataAPI.UserName = "Melody"
DataAPI.Password = "Nelson"
DataAPI.CGIPath = "http://localhost/cgi-bin/mt/"
Properties
- Username(String : デフォルト値: Melody)
- Password(String : デフォルト値: Nelson)
- CGIPath(String : デフォルト値: http://localhost/cgi-bin/mt/)
- DataAPIScript(String : デフォルト値: mt-data-api.cgi)
- AdminScript(String : デフォルト値: mt.cgi)
- APIVersion (String : デフォルト値: v1)
- AuthRemember(Boolean : デフォルト値 : True)
- AuthTimeout(Integer : デフォルト値 : 30)
- AuthTimeout(Integer : デフォルト値 : 30)
- ClientID(String : デフォルト値: Xojo)
- GetTimeout(Integer : デフォルト値 : 90)
- PostTimeout(Integer : デフォルト値 : 60)
- AccessToken(String : デフォルト値: なし)
- SessionID(String : デフォルト値: なし)
- TokenExpires(String : デフォルト値: -1) ※取得したAccessTokenが有効なUnixTimestamp
- LastErrorCode(JSONItem : デフォルト値: なし)
Method
今のところGetEntries, GetEntry, NewEntry, UpdateEntry, UploadAsset をサポート。
GetEntries(ブログ記事一覧の取得)
Dim JSON As JSONItem
= DataAPI.GetEntries( <BlogID(Integer)>, <Params(String)>, <Authentication(Boolean)> )
例えば、BlogID が1のエントリーを500件、カラム名を指定し、認証付きでGETする場合
Dim JSON As JSONItem
= DataAPI.GetEntries( 1, "limit=500&fields=title,updatable,id,status,date,body,permalink", True )
GetEntry(単一ブログ記事の取得)
Dim JSON As JSONItem
= DataAPI.GetEntry( <BlogID(Integer)>, <EntryID(Integer)>, <Authentication(Boolean)> )
NewEntry(ブログ記事の投稿)
Dim JSON As JSONItem
= DataAPI.NewEntry( <BlogID(Integer)>, <Entry(Dictionary)> )
ここでのEntryはDictionaryとして指定する。
Dim BlogId As Integer = 1
Dim Entry As New Dictionary
Entry.Value( "title" ) = "記事のタイトル"
Entry.Value( "body" ) = "記事の本文"
Entry.Value( "status" ) = "Publish"
Dim JSON As JSONItem = DataAPI.NewEntry( BlogId, Entry )
MsgBox( JSON.ToString )
UpdateEntry(ブログ記事の更新)
Dim JSON As JSONItem
= DataAPI.UpdateEntry( <BlogID(Integer)>, <EntryID(Integer)>, <Entry(Dictionary)> )
UploadAsset(アイテムのアップロード)
Dim JSON As JSONItem
= DataAPI.UploadAsset( <BlogID(Integer)>, <File(FolderItem)>,
<Path(String)>, <autoRenameIfExists(Boolean)>, <normalizeOrientation(Boolean)> )
ファイル選択してアップロードするコードは以下の通り。
Dim DataAPI As MTDataAPI
DataAPI = New MTDataAPI
DataAPI.UserName = "Melody"
DataAPI.Password = "Nelson"
DataAPI.CGIPath = "http://localhost/cgi-bin/mt/"
Dim F As FolderItem = GetOpenFolderItem("")
If F <> Nil Then
Dim JSON As JSONItem = DataAPI.UploadAsset( 1, F, "images", True, True )
MsgBox( JSON.ToString )
End If
ね、とっても簡単。