イベントカレンダープラグイン(その12・Data APIでのアクセス)

イベントカレンダープラグインでは、Data APIを利用してイベントの情報を得ることもできます。

1.エンドポイント

イベントカレンダープラグインでは、「http://your-host/path-to-mt/mt-data-api.cgi/v1/sites/サイトID/events」という形式のエンドポイントを提供します。
このエンドポイントにGETメソッドでアクセスすることで、イベント(に対応する記事)の情報を取得することができます。

上記のエンドポイントにアクセスする際に、以下のパラメータを指定することもできます。

パラメータ名渡す値
type取得するイベントのタイプ
指定できる値は以下の通り
current現在開催中のイベント
past終了したイベント
future今後開催予定のイベント
current_or_future開催中または今後開催予定のイベント
categoryイベントが属するカテゴリの名前
categoryIdsイベントが属するカテゴリのID
tagイベントにつけたタグの名前
tagIdsイベントにつけたタグのID
sortOrder古いイベントから順に取得する場合はascend
新しいイベントから順に取得する場合はdescend
outOrder古いイベントから順に出力する場合はascend
新しいイベントから順に出力する場合はdescend
limit取得するイベントの件数
offset読み込みをスキップするイベントの件数

なお、category/categoryIds/tag/tagIdsは、複数の値をコンマで区切って指定することもできます。

2.JavaScriptでのアクセス

JavaScriptのライブラリを利用して、イベントの情報を取得することもできます。

2-1.ライブラリの組み込み

まず、HTMLに以下のscriptタグを入れて、Data APIのライブラリと、イベントカレンダープラグインのライブラリを組み込みます。
「your-host」と「path-to-mt」の部分は、ご自分の環境に合わせて置き換えます。
また、Movable Typeのテンプレートの中では、「http://your-host/path-to-mt/mt-static/」の部分をMTStaticWebPathタグに置き換えることができます。

<script type="text/javascript" src="http://your-host/path-to-mt/mt-static/data-api/v1/js/mt-data-api.js"></script>
<script type="text/javascript" src="http://your-host/path-to-mt/mt-static/plugins/EventCalendar/js/extension.js"></script>

2-2.listEventsメソッド

次に、Data APIのオブジェクトに対して「listEvents」というメソッドを実行し、イベント(に対応する記事)の情報を取得します。
Data APIの初期化から、listEventsメソッドを実行するまでの流れは、基本的には以下のようになります。
「your-host」と「path-to-mt」の部分は、ご自分の環境に合わせて置き換えます。

var api = new MT.DataAPI({
    baseUrl:  'http://your-host/path-to-mt/mt-data-api.cgi',
    clientId: 'example'
});
var param = {
    パラメータの指定
};
api.listEvents(siteId, param, function(response) {
    var events = response.items;
    個々のイベントに対する処理
});

listEventsメソッドにコールバック関数を指定して、イベントを取得した後の処理を入れます。
コールバック関数のパラメータのresponseには、MT標準のlistEntriesメソッドと同様に、totalCount(イベントの記事の件数)とitems(イベントの記事の配列)の2つのプロパティがあります。