Misskey v10.0.0 Release Notes

  • ストリーミングAPIに破壊的変更があります。運営者がすべきことはありません。

    変更は以下の通りです

    • ストリーミングでやり取りする際の snake_case が全て camelCase に
    • リバーシのストリームエンドポイント名が reversi → gamesReversi、reversiGame → gamesReversiGame に
    • ストリーミングの個々のエンドポイントが廃止され、一旦元となるストリームに接続してから、個々のチャンネル(今までのエンドポイント)に接続します。詳細は後述します。
    • ストリームから流れてくる、キャプチャした投稿の更新イベントに投稿自体のデータは含まれず、代わりにアクションが設定されるようになります。詳細は後述します。
    • ストリームに接続する際に追加で指定していたパラメータ(トークン除く)が、URLにクエリとして含むのではなくチャンネル接続時にパラメータ指定するように

    個々のエンドポイントが廃止されることによる新しいストリーミングAPIの利用方法

    具体的には、まず https://example.misskey/streaming にwebsocket接続します。 次に、例えば「messaging」ストリーム(チャンネルと呼びます)に接続したいときは、ストリームに次のようなデータを送信します:

    {
      type: 'connect',
      body: {
        channel: 'messaging',
        id: 'foobar',
        params: {
          otherparty: 'xxxxxxxxxxxx'
        }
      }
    }
    

    ここで、idにはそのチャンネルとやり取りするための任意のIDを設定します。 IDはチャンネルごとではなく「チャンネルの接続ごと」です。なぜなら、同じチャンネルに異なるパラメータで複数接続するケースもあるからです。 paramsはチャンネルに接続する際のパラメータです。チャンネルによって接続時に必要とされるパラメータは異なります。パラメータ不要のチャンネルに接続する際は、このプロパティは省略可能です。

    チャンネルにメッセージを送信するには、次のようなデータを送信します:

    {
      type: 'channel',
      body: {
        id: 'foobar',
        type: 'something',
        body: {
          some: 'thing'
        }
      }
    }
    

    ここで、idにはチャンネルに接続するときに指定したIDを設定します。

    逆に、チャンネルからメッセージが流れてくると、次のようなデータが受信されます:

    {
      type: 'channel',
      body: {
        id: 'foobar',
        type: 'something',
        body: {
          some: 'thing'
        }
      }
    }
    

    ここで、idにはチャンネルに接続するときに指定したIDが設定されています。

    投稿のキャプチャに関する変更

    投稿の更新イベントに投稿情報は含まれなくなりました。代わりに、その投稿が「リアクションされた」「アンケートに投票された」「削除された」といったアクション情報が設定されます。

    具体的には次のようなデータが受信されます:

    {
      type: 'noteUpdated',
      body: {
        id: 'xxxxxxxxxxx',
        type: 'reacted',
        body: {
          reaction: 'hmm'
        }
      }
    }
    
    • reacted ... 投稿にリアクションされた。reactionプロパティにリアクションコードが含まれます。
    • pollVoted ... アンケートに投票された。choiceプロパティに選択肢ID、userIdに投票者IDが含まれます。