拙著「個人投資家は低位株で儲けなさい」が発売されました。
株価が安い「低位株」に投資する方法を解説しています。
自由国民社刊で、定価1,512円(消費税込み)です。
PHP/VBA用Data APIライブラリでのアイテムのアップロード
Movable TypeのPHP用およびVBA用Data APIライブラリで、アイテム(画像等)をアップロードする方法を解説します。
1.uploadAssetエンドポイント
アイテムをアップロードするには、「uploadAsset」というエンドポイントを使います。
パラメータとして、以下の情報を渡します。
名前 | 内容 |
---|---|
site_id | アップロード先のウェブサイト/ブログのID |
file | アップロードするファイルのパス |
path | アップロード先のディレクトリ |
autoRenameIfExists | 1を指定した場合、サーバーにすでに同名のファイルがあるときには、ファイル名をランダムに変えてアップロードする |
normalizeOrientation | 1を指定した場合、アップロードしたファイルのExifデータから、向きを適切に回転する |
なお、アイテムの各種の情報(概要など)を設定するには、アップロードを行った後で、「updateAsset」のエンドポイントを実行します。
2.PHPでの例
PHPライブラリを使って、以下のようにアイテムをアップロードしたいとします。
項目 | 内容 |
---|---|
mt-data-api.cgiのアドレス | http://www.foo.com/mt/mt-data-api.cgi |
クライアントID | sample |
ユーザー名 | foo |
パスワード | bar |
アップロードするファイル | /home/foo/hoge.jpg |
アップロード先ディレクトリ | images |
アップロード先のウェブサイトのID | 1 |
この場合、以下のようなプログラムを実行します。
require_once('mt-data-api.php'); // 初期化 $api = new MTDataAPI('http://www.foo.com/mt/mt-data-api.cgi', 'sample'); // 認証 $response = $api->authenticate(array('username' => 'foo', 'password' => 'bar')); if (isset($response['error'])) { 認証失敗時の処理 } // アイテムのアップロード $params = array( 'file' => '/home/foo/hoge.jpg', 'path' => 'images', 'site_id' => 1, ); $response = $api->uploadAsset($params); if (isset($response['error'])) { アップロード失敗時の処理 }
3.VBAでの例
上記のPHPの例をVBAで書き換えると、以下のようになります。
ただし、アップロードするファイルは、Cドライブの「\home\foo\hoge.jpg」だとします。
Sub UploadAsset() Dim api As MTDataAPI, i As Integer Dim response As Scripting.Dictionary, params As Scripting.Dictionary ' 初期化 Set api = New MTDataAPI api.init "http://www.foo.com/mt/mt-data-api.cgi", "sample" ' 認証 Set params = New Scripting.Dictionary params("username") = "foo" params("password") = "bar" Set response = api.send("authenticate", params) If response.Exists("Error") Then 認証失敗時の処理 End If ' アイテムのアップロード Set params = New Scripting.Dictionary params("file") = "C:¥home¥foo¥hoge.jpg" params("path") = "images" params("site_id") = 1 Set response = api.send("uploadAsset", params) If response.Exists("Error") Then アップロード失敗時の処理 End If End Sub