拙著「FXはチャートで勝つ!」が発売されました。
FX(外国為替証拠金取引)でのチャートの読み方を解説しています。
自由国民社刊で、定価1,728円(消費税込み)です。
VBAでData APIにアクセスする
Movable TypeのData APIは、さまざまなプログラム言語からアクセスすることができます。
その一例として、ExcelのVBA(Visual Basic for Applications)でアクセスしてみました。
JSONLibの準備
Data APIでは、JSON形式でデータをやり取りします。
しかし、ExcelのVBAには、標準ではJSONを扱う機能がありません。
そこで、「JSONLib」というライブラリを使います。
JSONLibの入手および組み込み方法は、cybozu.com developer networkの「第2回 Excelとkintoneを連携させよう」の記事をご参照ください。
記事を作成する
例として、記事を作成するプログラムを作ってみたところ、以下のようになりました。
Data APIのプロトコルに沿って、HTTP通信を順に行っています。
先頭の方のConst文にある「ユーザー名」「パスワード」「your-host」「path-to-mt」「記事作成先のブログのID」を、ご自分の環境に合わせて書き換えれば、動作を試すことができます。
Const USERNAME = "ユーザー名" Const PASSWORD = "パスワード" Const CLIENTID = "sample" Const BASE = "http://your-host/path-to-mt/mt-data-api.cgi/" Const SITE_ID = 記事作成先のブログのID Sub main() Dim url As String, params As String, accessToken As String Dim json As Object ' XMLHttpとjsonlibの初期化 Dim xmlhttp As Object Set xmlhttp = CreateObject("msxml2.xmlhttp") Dim jsonlib As New jsonlib ' 認証 url = BASE & "v1/authentication" params = "username=" & USERNAME & "&password=" & PASSWORD & "&clientId=" & CLIENTID xmlhttp.Open "POST", url, False xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlhttp.send params Set json = jsonlib.parse(xmlhttp.responseText) If xmlhttp.Status <> 200 Then MsgBox "認証失敗:" & xmlhttp.Status & " " & json("error")("message") Exit Sub End If ' アクセストークンを取得 accessToken = json("accessToken") ' 記事を作成 Dim entry As Object Set entry = CreateObject("Scripting.Dictionary") entry("title") = "test" entry("body") = "あいうえお" url = BASE & "v2/sites/" & SITE_ID & "/entries" xmlhttp.Open "POST", url, False xmlhttp.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" xmlhttp.setRequestHeader "X-MT-Authorization", "MTAuth accessToken=" & accessToken xmlhttp.send "entry=" & jsonlib.toString(entry) Set json = jsonlib.parse(xmlhttp.responseText) If xmlhttp.Status <> 200 Then MsgBox "記事作成失敗:" & xmlhttp.Status & " " & json("error")("message") Exit Sub End If MsgBox "記事作成終了" End Sub