翻訳にご協力ください

このドキュメントはコミュニティによる翻訳です。ドキュメントの翻訳はCrowdinから行えます。ご協力をお願いします🙏

プラグインの作成

Misskey Webクライアントのプラグイン機能を使うと、クライアントを拡張し、様々な機能を追加できます。 このドキュメントではプラグインの作成方法について説明します。

プラグインの例

以下に完全なプラグインの例を示します。このプラグインは、Plugin:register_post_form_actionを使用して、投稿フォームに「フグパンチボタン」を追加するものです。

このプラグインをインストールすると、投稿フォーム上のプラグインメニューに「フグパンチ」の項目が追加されます。クリックすると、投稿フォーム上のテキストに フグパンチ!!!!🐡( '-' 🐡 ) が追加されます。

/// @ 0.12.4
### {
  name: "フグパンチボタン"
  version: "0.0.1"
  author: "Misskey Project"
}

Plugin:register_post_form_action('フグパンチ', @(note, rewrite) {
  let fugu = "フグパンチ!!!!🐡( '-' 🐡 )"

  if (note.text.trim() == '') {
    // ノートの中身がない場合はフグパンチに置き換え
    rewrite('text', fugu)
  } else {
    // ノートの中身がある場合は冒頭にフグパンチを追加して改行
    rewrite('text', `{fugu}{Str:lf}{note.text}`)
  }
})

AiScript

プラグインはAiScriptを使って記述されるスクリプトです。

メタデータ

プラグインは、AiScriptのメタデータ埋め込み機能を使って、デフォルトとしてプラグインのメタデータを定義する必要があります。メタデータの例は以下の通りです。

/// @ 0.12.4
### {
  name: "プラグイン名"
  version: "4.2.1"
  author: "作者名"
  description: "説明文"
}

メタデータは次のプロパティを含むオブジェクトです。

name

プラグイン名

author

プラグイン作者

version

プラグインバージョン。数値を指定してください。

description

プラグインの説明

permissions

プラグインが要求する権限。MisskeyAPIにリクエストする際に用いられます。

APIのリクエスト方法については、AiScript Misskey拡張API リファレンスをご覧ください。

ヒント

permissionの一覧はこちらをご覧ください。

config

プラグインの設定情報を表すオブジェクト。 キーに設定名、値に以下のプロパティを含めます。

type

設定値の種類を表す文字列。以下から選択します。 string number boolean

label

ユーザーに表示する設定名

description

設定の説明

default

設定のデフォルト値

API

Misskey Webはプラグインに対してAPIを公開していて、それらを利用することでクライアントの機能を拡張できます。 どのようなAPIがあるかはAiScript Misskey拡張API リファレンスを参照してください。

プラグインを配布する

v2023.11.0以降では、あなたのウェブサイトからワンクリックでプラグインを直接インストールできるようになっています。

プラグインのインストール機能を提供する場合は、あなたのサイト上にAPIを実装する必要があります。詳しくはこちらをご覧ください。