TopMovable TypeDataAPI > 2013年10月
2013年10月 4日

Movable Type Data APIの使い方:uploadAsset()

October 4,2013 1:33 AM
Tag:[, ]
Permalink

Movable Type 6から提供されるData APIの使い方を紹介します。

本エントリーではJavaScript SDK APIのuploadAsset()を使ったアイテムのアップロードについて解説します。

1.基本

uploadAsset()は、アイテムのアップロードを行うためのAPIです。

uploadAsset()を使ったアイテムのアップロードを行うための簡単なサンプルを紹介します。

<script>
// API生成コード等は省略
 
$('#upload').click(function(){
    var data = {
      file: document.getElementById("file").files[0], // File object
      path: "images",
      autoRenameIfExists: true,
      normalizeOrientation: true
    };
    api.uploadAsset(2, data, function(response) {
        if (response.error) {
            $('#result').html('エラー' );
            return;
        }
        $('#result').html('アップロード完了' );
    });
});
</script>
 
<input type="file" id="file" />
<input type="button" id="upload" value="アップロード" />
<div id="result"></div>

JavaScriptライブラリのインクルードやapiの生成については「Movable Type Data APIの使い方(JavaScript SDKを使ったオブジェクトの生成)」を参照してください。

また、エラーのハンドリングについては「Movable Type Data APIの使い方(エラーのハンドリング)」を参照してください。

なお、上記のサンプルでは結果表示処理でjQueryを利用しているので、jQueryのインクルードも行ってください。

2.パラメータ

uploadAsset()に設定するパラメータは次のとおりです。第2パラメータのdataはハッシュで設定します。

  • siteId:ブログID(必須)
  • data:アップロードするアイテムのデータ(必須)
  • callback:コールバック処理(オプション)

公式リファレンスでは第3パラメータのcallbackはオプションのようですが、エラーの判定を行うには必要な処理だと思います。

第2パラメータのdataの詳細は次のとおりです。

  • file:フォームのファイルオブジェクト
  • path:アップロード先のパス
  • autoRenameIfExists:同一ファイルが存在する場合、古いファイルをリネーム
  • normalizeOrientation:Exif情報を使って画像の向きを修正する

その他にもoverwrite、fileName、tempが使えるみたいです。

3.レスポンス

レスポンスとして次のようなJSONデータが非同期で返却されます(MT6 rc2版時点でのサンプル)。

{"filename":"hoge.png","url":"http://user-domain/images/hoge.png","mimeType":"image/png","label":"image","id":"2","description":null,"tags":[]}

データの意味は次のとおりです。

filename
アイテムのファイル名

url
アップロード先のURL

mimeType
MIMEタイプ

label
アイテムの名前

id
アイテムのID

description
アイテムの説明

tags
アイテムのタグ

autoRenameIfExistsにfalseを設定して、同一ファイルが存在する場合、次のようなエラーレスポンスが返却されます。

{"error":{"data":{"temp":"hgrz_vahWc","fileName":"hoge.png","path":"images"},"message":"A file named 'hoge.png' already exists.","code":409}}

4.注意事項

uploadAsset()を実行するには、authenticate()を使って認証しておく必要があります。

認証されていない状態でこのAPIを実行すると、次のレスポンスが返却されます。

{"error":{"message":"Unauthorized","code":401}}

また、アップロード権限がない場合は403エラーとなります。

Comments [0] | Trackbacks [0]
2013年10月 2日

Movable Type Data APIの使い方:publishEntries()

October 2,2013 1:23 AM
Tag:[, ]
Permalink

Movable Type 6から提供されるData APIの使い方を紹介します。

本エントリーではJavaScript SDK APIのpublishEntries()を使った記事の再構築について解説します。

1.基本

publishEntries()は記事の再構築を行うためのAPIです。

publishEntries()を使って再構築するための簡単なサンプルを紹介します。

<script>
// API生成コード等は省略
 
$('#publish').click(function(){
    var ids = $('#ids').val();
    api.publishEntries({ids: ids}, function(response) {
        if (response.error) {
            // Handle error
            return;
        }
        if (response.status === 'Rebuilding') {
            if (response.restIds) {
                // 記事アーカイブの再構築
                $('#result').html('再構築中:' + response.restIds );
            } else {
                // インデックステンプレートの再構築
                $('#result').html('インデックステンプレートの再構築' );
            }
        } else if (response.status === 'Complete') {
            // 再構築完了
            $('#result').html('再構築完了' );
        }
});
</script>
 
<input type="text" id="ids" />
<input type="button" id="publish" value="再構築" />
<div id="result"></div>

JavaScriptライブラリのインクルードやapiの生成については「Movable Type Data APIの使い方(JavaScript SDKを使ったオブジェクトの生成)」を参照してください。

また、エラーのハンドリングについては「Movable Type Data APIの使い方(エラーのハンドリング)」を参照してください。

なお、上記のサンプルでは結果表示処理でjQueryを利用しているので、jQueryのインクルードも行ってください。

2.パラメータ

publishEntries()に設定するパラメータは次のとおりです。idsは第1パラメータのハッシュとして設定します。

  • ids:記事ID(必須、複数設定する場合は「1,2,3」という風にカンマで区切る)
  • callback:コールバック処理(オプション)

公式リファレンスでは第2パラメータのcallbackはオプションのようですが、エラーの判定を行うには必要な処理だと思います。

3.レスポンス

レスポンスとして次のようなJSONデータが非同期で返却されます(MT6 rc2版時点でのサンプル)。

記事アーカイブの再構築中

{"status":"Rebuilding","restIds":"1,3,58,2","startTime":"2013-10-01T20:50:49\u002b09:00"}

インデックステンプレートの再構築中

{"status":"Rebuilding","restIds":"","startTime":"2013-10-01T20:50:49\u002b09:00"}

再構築完了

{"status":"Complete","restIds":"","startTime":"2013-10-01T20:50:49\u002b09:00"}

データの意味は次のとおりです。

status
再構築のステータス

restIds
再構築中のID

startTime
再構築開始時間

4.注意事項

publishEntries()を実行するには、authenticate()を使って認証しておく必要があります。

認証されていない状態でこのAPIを実行すると、次のレスポンスが返却されます。

{"error":{"message":"Unauthorized","code":401}}
Comments [0] | Trackbacks [0]
Now loading...
ギターに入った猫
掲載広告募集
Styles
Font Size
Default
For defective color vision
Gray Scale
RGB Color
Search this site

このブログをメールで購読する by:FeedBurner

AMN
Categories
Monthly Archives
2020年
2019年
2018年
2017年
2016年
2015年
2014年
2013年
2012年
2011年
2010年
2009年
2008年
2007年
2006年
2005年
2004年
2003年
BlogPeople
Syndicate this site
FeedBurner(RSS1.0/RSS2.0/Atom)
Counter
これまでのアクセス
Powered by
Movable Type 6.0.3