Movable Type の Data API SDK の publishTemplate メソッドでテンプレートを再構築する際にハマった話
2020-03-16
2分で読了
更新: 2025-12-14
目次
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 を使ったコードを見せてもらって、それを手がかりに解決しました。いつもありがとうございます!