Movable TypeのWorkflowプラグインでDataAPIが利用可能になる「WorkflowDataAPIプラグイン」

Movable TypeのWorkflowプラグインでDataAPIが利用可能になる「WorkflowDataAPIプラグイン」

Posted at December 15,2022 12:03 AM
Tag:[MovableType, Plugin, WorkflowDataAPI]

これは「Movable Type Advent Calendar 2022」15日目の記事です。

Movable TypeのWorkflowプラグインでDataAPIが利用可能になる「WorkflowDataAPIプラグイン」の紹介です。

1.概要

Workflowプラグインを使ったワークフロー機能は管理画面上でしか利用・操作できません。

そこで、DataAPIを提供することで、任意のクライアントアプリケーションを通じてワークフロー機能を利用できるようにしてみました。

また、DataAPI機能をWorkflowプラグインに含めると、イニシャルコストが高くなるため、別プラグインとしています。

DataAPIを利用する場合は、Workflowプラグインに加えて、WorkflowDataAPIプラグインをインストールして頂く形になります。

2.主な機能

現状では下記の機能についてAPIを提供しています。

  • 記事データの取得
  • コンテンツデータの取得
  • 記事データの承認依頼
  • コンテンツデータの承認依頼
  • 記事データの承認
  • コンテンツデータの承認
  • 記事データの差し戻し
  • コンテンツデータの差し戻し

承認依頼・承認・差し戻しではメールの送信も行われます。

記事・コンテンツデータの取得では、ワークフローに必要な、承認者一覧が取得できます。

また、記事・コンテンツデータの承認依頼・承認・差し戻しではワークフローのステータスを更新することができます。

3.サンプル

DataAPIのサンプルを一部紹介します。

これはライターが公開状態のコンテンツデータについて承認依頼を行うサンプルです。

<script>
$.ajax({
    url: "http://user-domain/cgi-bin/mt/mt-data-api.cgi/v2/authentication",
    type: "POST",
    dataType: "json",
    data: {
        'username': 'workflow_writer',
        'password': 'password',
        'clientId': 'test'
    }
}).done(function(data){
    sessionId = data.sessionId
    accessToken = data.accessToken
    // コンテンツデータ
    data = {
            // 承認依頼のステータス
            status: "20",
            authored_on: "20220407205922",
            modified_on: "20220418222222",
            // コンテンツフィールド
            fields: [{
                id: 7,
                type: "single_line_text",
                value: "test123456"
            },{
                id: 8,
                type: "number",
                value: "123"
            },{
                id: 182,
                type: "content_type",
                value: [ 1 ]
            }],
            label: "test",
            identifier: "def6decc71301a52e9a760d6d8f7fdc497f54d8",
            unique_id: "def6decc71301a52e9a760d6d8f7fdc497f54d8"
    };
    // コンテンツデータの承認依頼
    var accessToken = "MTAuth accessToken=" + accessToken;
    $.ajax({
        url: "http://user-domain/cgi-bin/mt/mt-data-api.cgi/v4/sites/1/contentTypes/2/workflow_data/52",
        type: "PUT",
        data: 'content_data=' + JSON.stringify(data),
        dataType: "json",
        headers: {
            'X-MT-Authorization': accessToken
        }
    }).done(function(data){
        $('#test').text(data.status);
    });
});
</script>

4.プラグインについて

WorkflowDataAPIプラグインの詳細は下記のページをご覧ください。

WorkflowDataAPIプラグイン
WorkflowDataAPIプラグイン

関連記事
トラックバックURL


コメントする
greeting

*必須

*必須(非表示)


ご質問のコメントの回答については、内容あるいは多忙の場合、1週間以上かかる場合があります。また、すべてのご質問にはお答えできない可能性があります。予めご了承ください。

太字イタリックアンダーラインハイパーリンク引用
[サインインしない場合はここにCAPTCHAを表示します]

コメント投稿後にScript Errorや500エラーが表示された場合は、すぐに再送信せず、ブラウザの「戻る」ボタンで一旦エントリーのページに戻り(プレビュー画面で投稿した場合は、投稿内容をマウスコピーしてからエントリーのページに戻り)、ブラウザをリロードして投稿コメントが反映されていることを確認してください。

コメント欄に(X)HTMLタグやMTタグを記述される場合、「<」は「&lt;」、「>」は「&gt;」と入力してください。例えば「<$MTBlogURL$>」は「&lt;$MTBlogURL$&gt;」となります(全て半角文字)