Movable Type CMSプラットフォーム Movable Type
ドキュメントサイト

Blogブログ

詳説 Data API 2.0 Vol.4: ウェブサイトやブログを管理する

Data API 2.0 から出来るようになった事のひとつに、ウェブサイト・ブログの管理があげられます。ここでいう管理とは、CMS 画面からの操作と同様に設定を変更することや、新しくウェブサイト・ブログを作成すること。または、既存のウェブサイト・ブログを削除することを示します。

詳説 Data API 2.0、第四回目は ウェブサイトとブログの管理についてお届けします。

v1.0 との違い

v1.0 では、自身がアクセスできるウェブサイトとブログの一覧を取得することと、個別のウェブサイト・ブログの情報を取得することができました。

v2.0 では、それらに加えて、ウェブサイト・ブログの作成・更新・削除を行うことができるようになっています。また、ウェブサイト配下のブログの一覧を取得することや、すべてのウェブサイトとブログを一覧することもできます。

取得できる項目も大幅に増えており、適切な権限を有する場合は、ほぼすべてのの情報にアクセスすることが可能です。

リソース情報
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites

自分がアクセスできるウェブサイトとブログを一覧する

記事の作成などの権限を持っているウェブサイトとブログの一覧を取得することができます。

エンドポイント
GET http(s)://path/to/mt-data-api.cgi/v2/users/:user_id/sites
サンプル
// ユーザー認証
$.ajax({
    url: "http://path/to/mt-data-api.cgi/v2/authentication",
    type: "POST",
    dataType: "json",
    data: {
        'username': 'Your Sign In ID',
        'password': 'Your Sign In Password',
        'clientId': 'test'
    }
}).done(function(data){
    var token = data.accessToken;
    var t = "MTAuth accessToken=" + token;
    $.ajax({
        url: "http://path/to/mt-data-api.cgi/v2/users/me/sites",
        type: "GET",
        dataType: 'json',
        headers: {
            'X-MT-Authorization': t
        }
    }).done(function( sites ) {
        console.log(sites);
    });
});
ドキュメント
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites-listbyuser

ウェブサイト配下のブログを一覧する

特定のウェブサイトに属するブログの一覧を取得することができます。

エンドポイント
GET http(s)://path/to/mt-data-api.cgi/v2/sites/:site_id/children
サンプル
$.ajax({
    url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/sites/1/children",
    type: "GET",
    dataType: 'json'
})
.done(function( data ) {
    console.log(data);
});

ウェブサイトを作成する

ウェブサイトを作成する権限を有している場合、ウェブサイトを新規に作成することができます。作成に最低限必要な情報は、以下のとおりです。必要に応じて他のフィールドの情報を追加できます。

ウェブサイトのサイトパスに、初期値が指定されているか、BaseSitePath 環境変数で指定されている場合、サイトパスは初期値で指定されているパスから始まる必要があります。

  • name: ウェブサイト名
  • url: ウェブサイト のサイト URL
  • sitePath: ウェブサイトのサイトパス
エンドポイント
POST http(s)://path/to/mt-data-api.cgi/v2/sites
サンプル
var newWebsite = {};
newWebsite.name = "New WebSite";
newWebsite.url = "http://example.com/";
newWebsite.sitePath = "/path/to/document_root";

$.ajax({
  url: "http://path/to/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
  url: "http://path/to/mt-data-api.cgi/v2/sites",
    type: "POST",
    dataType: 'json',
    data: {
      website: JSON.stringify(newWebsite)
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( data ) {
    console.log(data);
  });
});
ドキュメント
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites-insertnewwebsite

ブログを作成する

ブログを作成する権限を有している場合、指定されたウェブサイトの下に新しいブログを作成することができます。エンドポイントに含まれる :site_id には、ブログを作成するウェブサイトの ID を指定します。作成に最低限必要な情報は、以下のとおりです。必要に応じて他のフィールドの情報を追加できます。

  • name: ブログ名
  • url: ブログ のサイト URL
  • sitePath: ブログのサイトパス
エンドポイント
POST http(s)://path/to/mt-data-api.cgi/v2/sites/:site_id
サンプル
//
// ウェブサイトからの相対パスでサイトパスを指定する場合
//
var newBlog = {};
newBlog.name = "New Blog";
newBlog.url = "/::/blog";
newBlog.sitePath = "blog";

$.ajax({
  url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
    url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/sites/1",
    type: "POST",
    dataType: 'json',
    data: {
      blog: JSON.stringify(newBlog)
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( data ) {
    console.log(data);
  });
});


//
// 絶対パスでサイトパスを指定する場合
//
var newBlog = {};
newBlog.name = "New Blog";
newBlog.url = "/::/blog";

// 絶対パスを指定する
newBlog.sitePath = "/path/to/document_root";

$.ajax({
  url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
    url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/sites/1",
    type: "POST",
    dataType: 'json',
    data: {
      blog: JSON.stringify(newBlog)
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( data ) {
    console.log(data);
  });
});

//
// サブドメインでサイト URL を指定する場合
//
var newBlog = {};
newBlog.name = "New Blog";

// 「サブドメイン./::/パス名」という形式で指定する
newBlog.url = "blog./::/";
newBlog.sitePath = "/path/to/document_root/blog.example.com";

$.ajax({
  url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
    url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/sites/1",
    type: "POST",
    dataType: 'json',
    data: {
      blog: JSON.stringify(newBlog)
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( data ) {
    console.log(data);
  });
});
ドキュメントhttps://www.movabletype.jp/developers/data-api/v2-reference.html#sites-insertnewblog

ウェブサイト・ブログを取得する

認証を伴わないでも、ウェブサイト・ブログの情報を取得することができます。ただし、取得できるのは Private ではない情報のみに制限されます。適切な権限を有している場合は、認証情報を付与することで、すべての情報を取得できます。

エンドポイント
GET http(s)://path/to/mt-data-api.cgi/v2/sites/:site_id
サンプル
$.ajax({
  url: "http://localhost/cgi-bin/mt/mt-data-api.cgi/v2/sites/1",
  type: "GET",
  dataType: 'json',
})
.done(function( res ) {
  console.log(res);
});
ドキュメント
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites-getblog

ウェブサイト・ブログの設定を更新する

ウェブサイト・ブログの設定を変更する権限を有する場合、設定を変更することができます。変更するときは、変更する内容だけを指定することもできます。

エンドポイント
PUT http(s)://path/to/mt-data-api.cgi/v2/sites/:site_id
サンプル
//
// サイトを取得して、内容を変更する
//
$.ajax({
  url: "http://path/to/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
    url: "http://path/to/mt-data-api.cgi/v2/sites/1",
    type: "GET",
    dataType: 'json',
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( site ) {
    site.name = "New Site";
    $.ajax({
      url: "http://path/to/mt-data-api.cgi/v2/sites/1",
      type: "POST",
      dataType: 'json',
      data: {
        website: JSON.stringify(site),
        __method: 'PUT'
      },
      headers: {
        'X-MT-Authorization': t
      }
    })
    .done(function( res ) {
      console.log(res);
    });
  });
});

//
// 変更点を指定して、内容を変更する
//
$.ajax({
  url: "http://path/to/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  var data = {};
  data.name = "Temporary Change";
  $.ajax({
    url: "http://path/to/mt-data-api.cgi/v2/sites/1",
    type: "POST",
    dataType: 'json',
    data: {
      website: JSON.stringify(data),
      __method: 'PUT'
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( res ) {
    console.log(res);
  });
});
ドキュメント
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites-updatesite

ウェブサイト・ブログを削除する

ウェブサイト・ブログを削除する権限を有する場合、削除をすることができます。ただし、子ブログが残っているウェブサイトは、先にブログを消さないとウェブサイトを削除できません。

エンドポイント
DELETE http(s)://path/to/mt-data-api.cgi/v2/sites/:site_id
サンプル
$.ajax({
  url: "http://path/to/mt-data-api.cgi/v2/authentication",
  type: "POST",
  dataType: "json",
  data: {
    'username': 'Your Sign In ID',
    'password': 'Your Sign In Password',
    'clientId': 'test'
  }
}).done(function(data){
  var token = data.accessToken;
  var t = "MTAuth accessToken=" + token;
  $.ajax({
    url: "http://path/to/mt-data-api.cgi/v2/sites/4",
    type: "POST",
    dataType: 'json',
    data: {
      __method: 'DELETE'
    },
    headers: {
      'X-MT-Authorization': t
    }
  })
  .done(function( res ) {
    console.log(res);
  });
});
ドキュメント
https://www.movabletype.jp/developers/data-api/v2-reference.html#sites-deletesite

  • このエントリーをはてなブックマークに追加