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が含まれます。