• Home
  • Movable Type
  • Data API
  • Movable Type の Data API SDK の publishTemplate メソッドでテンプレートを再構築する際にハマった話

Movable Type の Data API SDK の publishTemplate メソッドでテンプレートを再構築する際にハマった話

Movable Type の Data API で、公式の JavaScript SDK を使ってテンプレートを再構築するときにハマりました。

例えば、サイトIDが 1 で、テンプレートIDが 36 のコンテンツタイプアーカイブを再構築するとします。

まずは、Data API インスタンスを作成して publishTemplate メソッドを利用するのだと思います。この辺りは細かいドキュメントが無いので手探りです。

var api = new MT.DataAPI({
  baseUrl:  'Path to mt-data-api.cgi',
  clientId: 'test'
});
api.publishTemplate(1, 36, function (response) {
  console.warn(response);
});

しかしこのコードだと500エラーでした。500エラーが出ないようにするには、下記のようにして第三引数に {data: JSON.stringify({})} をつける必要がありました。

api.publishTemplate(1, 36, {data: JSON.stringify({})}, function (response) {
  console.warn(response);
});

これ、なかなか気づかないですよね(笑

ちなみに、MTAppjQuery を使って、管理画面での DataAPI の利用 の設定が 有効 になっている場合は下記のコードを user.js に書けばOKです(new MT.DataAPIは不要)。

mtappVars.DataAPI.publishTemplate(1, 36, {data: JSON.stringify({})}, function (response) {
  console.warn(response);
});

今回は BUN さんに、jQuery の Ajax を使ったコードを見せてもらって、それを手がかりに解決しました。いつもありがとうございます!