Misskeyの投稿をSharkeyに投稿する方法

かんなすきー Advent Calendar 2024 - Adventarの20日目の投稿です。

Misskeyの投稿と同じ内容を、別のMisskey系サーバーにも投稿する方法についてメモがてら残しておきます。
俗にいう、マルチポスト、クロスポストというやつです。

方法の前に、注意点を3つ挙げておきます。

  1. 記載した内容で何か問題が起きても私は責任は負いません。自己責任で利用してください。
  2. 規約上マルチポストを禁止している場所もあるかと思いますので、所属サーバーの規約をよくご確認ください。
  3. マルチポストを設定する際は、両方のサーバーに定期的にログインし、反応などがついていたら対応してください。どうか、マルチポストを設定した状態で、アカウントの放置はやめてください。

前提条件

以下3つのアカウントがあること。

  • Misskeyサーバーのアカウント
  • Sharkeyサーバーのアカウント
  • Activepiecesのアカウント

1-1. Webhookをキャッチする処理を作成する

Activepiecesを開き、MisskeyからのWebhookをキャッチする設定をします。
Catch Webhook を選んで、Live URLを発行します。

1-2. MisskeyでWebhookを作成する

MisskeyサーバーでWebhookを作成します。

  1. 設定のWebhookを開き、Webhookの作成を押下します。
  2. 名前はわかりやすい名前を、URLには1-1で発行したLive URLを入力します。
  3. シークレットはランダムな文字列を設定してください。(Webhookのパスワード相当になります。)
  4. トリガーは「ノートを投稿したとき」のみオンにします。

1-3. Webhookをキャッチする

Activepiecesに戻り、設定の続きをします。

  1. Authenticateに、Header Authを設定します。
  2. Header Nameに、x-misskey-hook-secretを設定します。
  3. Header Valueに、1-2で設定したシークレットを記載します。
  4. Testボタンを押下し、Misskeyで何か投稿をします。
  5. Tested Successfullyとなることを確認します。

2-1. SharkeyでAPIトークンを発行する

Sharkeyサーバーで、投稿するためのAPIトークンを発行します。

  1. 設定のAPIを開き、アクセストークンの発行を押下します。
  2. 名前はわかりやすい名前をつけ、権限の「ノートを作成・削除する」をオンにします。
  3. 右上のチェックマークを押下します。
  4. APIキーが発行されるのでメモします。

2-2. Sharkeyへ投稿する処理を作成する

Activepiecesに戻り、Sharkeyへ投稿する処理を作成します。

  1. +マークを押下して、 Send HTTP Request を選びます。
  2. MethodにはPOSTを選びます。
  3. URLには所属しているSharkeyのnote/create APIのURLを記載します。(例: https://example.com/api/notes/create )
  4. Headersには以下2つのペアを記載します。
  • Content-Typeapplication/json
  • AuthorizationBearer <2-1でメモしたAPIキー>
  1. Query paramsには {}を記載します。
  2. Body TypeにはJSONを選びます。
  3. JSON Bodyに設定します。以下はホーム投稿する例です。詳しくは各サーバーのAPIドキュメント(例: https://example.com/api-doc#tag/notes/POST/notes/create にアクセス)をご確認ください。
1
2
3
4
{
  "text": "{{trigger['body']['body']['note']['text']}}",
  "visibility": "home"
}
  1. Testボタンを押下し、Tested Successfullyとなることを確認します。
  2. Misskeyの投稿がSharkeyに投稿されていれば成功です。
  3. 公開するボタンを押下することで、マルチポストの設定が有効になります。無効化する場合は公開後に右上に表示されるトグルをオフにします。

以上です。

あとがき

とりあえず、マルチポストが動くことは見ました。
Activepieces周りはどうやって設定すればいいのかよくわからず禿げてましたが、XのAI Grokに随分助けられました。おかげで1時間溶かすだけで済みました。ありがとうございます。
この記事の例では、全ての投稿をマルチポストします。それが不便な場合は、たとえば特定のハッシュタグがついた投稿のみマルチポストするなど、ご自身でカスタマイズしてご利用ください。

comments powered by Disqus
Built with Hugo
テーマ StackJimmy によって設計されています。