アルファサード株式会社 代表取締役 野田 純生のブログ


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

ね、とっても簡単。



このブログを書いている人
野田純生の写真
野田 純生 (のだ すみお)

大阪府出身。ウェブアクセシビリティエバンジェリスト。 アルファサード株式会社の代表取締役社長であり、現役のプログラマ。経営理念は「テクノロジーによって顧客とパートナーに寄り添い、ウェブを良くする」。 プロフィール詳細へ