daab 仕様 - ノート機能詳細

ノート機能

はじめに

ノートの作成についてはこれまで通り send メソッドを使用します。 それ以外の操作 (get, update, delete) については robot.direct.notes から提供される API を使用してください。

ノートの作成 (テキストのみ)

本文がテキストのみのノートを作成します。

robot.respond(/note$/, (res) => {
  res.send({
    note_title: 'タイトル',
    note_content: 'コンテンツ',
  });
});

指定するフィールドの仕様は以下の通りです。

フィールド仕様
note_titleノートのタイトル
最大 100 文字、空文字列は禁止
note_contentノートの本文
最大 5,000 文字、空文字列は禁止

また onsend フィールドを指定することで作成されたノートの情報を受け取ることができます。

    ...
    note_content: '...',
    onsend: (sent) => {
      console.log(`note: ${sent.note}`);
    }
  });
});

添付ファイル付きノートの作成

「ノートの作成 (テキストのみ)」で指定した note_titlenote_content の他に、添付したいファイルを note_attachments フィールドに指定します。

res.send({
  note_title: 'タイトル',
  note_content: '本文',
  note_attachments: [
    { path: '/path/to/image.png', name: 'image.png' },
    { path: './scripts/ping.js' }
  ]
});

note_attachments フィールドの仕様は以下の通りです。

フィールド仕様
note_attachments「添付ファイルオブジェクト」の配列

「添付ファイルオブジェクト」の仕様は以下の通りです。

フィールド仕様
pathファイルパス (省略不可)
nameファイル名
省略した場合は basename(path) になる
typeファイルのコンテンツタイプ
省略した場合はファイル情報から推測するが期待した値にならない可能性もある

また「ノートの作成 (テキストのみ)」の場合と同様、onsend フィールドを指定すると作成したノートの情報を受け取ることができます。

ノートの取得

指定した id のノートを取得します。

const id = ... // 取得したいノートの ID 文字列

robot.direct.notes.get({ id })
  .then(result => console.log(result.note))
  .catch(error => console.error(error.message));

id に指定する値は、onsend で受け取ったデータの id フィールドやノートイベントnote_id フィールドから得られる値を指定します。

ノートの更新

指定したノートを、指定したフィールド値で更新します。

robot.direct.notes.update(note, { note_content: '新しい本文' })
  .then(result => console.log(result.note))
  .catch(error => console.error(err.message));

第一引数に指定する note は、onsendrobot.direct.notes.get で取得したノートオブジェクトを指定します。

第二引数には、以下の中から更新したいフィールドだけを指定してください。指定したフィールドの値でノートが更新されます。

フィールド仕様
note_titleノートのタイトル、最大 100 文字、空文字列は禁止
note_contentノートの本文、最大 5,000 文字、空文字列は禁止
note_attachments次の「添付ファイルを更新する場合」を参照

添付ファイルを更新する場合

note_attachments を指定するとノートの添付ファイルが更新されます。指定しなければ既存の添付ファイルが維持されます。

添付ファイルを新しく追加したい場合は、以下のように既存の添付ファイル情報とともに「添付ファイル付きノートの作成」と同じ形式のオブジェクトを追加で指定します。

const newAttachments = [
  ...note.attachments,          // 既存の添付ファイル情報
  { path: '/path/to/new-file' } // ← 新しく追加する添付ファイル情報
];

robot.direct.notes.update(note, { note_attachments: newAttachments })
  ...

既存の添付ファイルのうち一部だけを残したい場合は、newAttachments の部分を以下のようにします。

const newAttachments = [
  note.attachments[0],          // 既存の添付ファイルのうち、一つ目だけを残す
  { path: '/path/to/new-file' } // ← 新しく追加する添付ファイル情報
];

ノートの削除

指定した id のノートを削除します。

robot.direct.notes.get({ id: note.id })
  .then(result => console.log(result.note))
  .catch(error => console.error(error.message));

指定する id 値は「ノートの取得」と同じです。

制限

robot.direct.notes 経由の API 呼び出しは「24 回/120 秒」に制限されています。