FEP-c0e0: 絵文字リアクション

Warning

このFEPはgemini-2.5-flashを利用して2025-08-17に翻訳されました。オリジナルのFEPはここから閲覧できます。

概要

このドキュメントでは、ActivityPub ネットワークにおける絵文字リアクションの実装方法について説明します。

履歴

Misskey はバージョン 10.97.0 (2019年) 以降、絵文字リアクションをサポートしています。 Pleroma はバージョン 2.0.0 (2020年) 以降、絵文字リアクションをサポートしています。

要件

このドキュメントにおけるキーワード「MUST (必須)」、「MUST NOT (してはならない)」、「REQUIRED (必須)」、「SHALL (するものとする)」、「SHALL NOT (しないものとする)」、「SHOULD (すべきである)」、「SHOULD NOT (すべきではない)」、「RECOMMENDED (推奨)」、「MAY (してもよい)」、「OPTIONAL (任意)」は、RFC-2119 に記述されている通りに解釈されます。

EmojiReact アクティビティ

EmojiReact アクティビティタイプは、LitePub ボキャブラリーの一部と見なされます。その完全な IRI は http://litepub.social/ns#EmojiReact です。

このアクティビティは Like アクティビティに似ています。Like アクティビティの標準プロパティに加えて、EmojiReact アクティビティは content プロパティを必須とします。リアクションのコンテンツは、単一のユニコード書記素(unicode grapheme)であるか、コロンで囲まれたカスタム絵文字の名前(ショートコード)のいずれかでなければなりません

カスタム絵文字が使用される場合、EmojiReact アクティビティは、単一の Emoji オブジェクトを含む tag プロパティを必須とします。その name プロパティの値はカスタム絵文字の名前を含んでいなければならず、コロンで囲まれているべきです。埋め込まれた Emoji は、アクターのサーバーとは異なるサーバーから発信されることがあります。

アクターは、単一の object に対して複数の EmojiReact アクティビティを生成できます。ただし、実装者は、同じ絵文字によるリアクションを複数許可しない、またはオブジェクトごとに複数のリアクションを許可しないことを選択してもよいです。

ユニコード絵文字の例:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "litepub": "http://litepub.social/ns#",
      "EmojiReact": "litepub:EmojiReact"
    }
  ],
  "actor": "https://alice.social/users/alice",
  "content": "🔥",
  "id": "https://alice.social/activities/65379d47-b7aa-4ef6-8e4f-41149dda1d2c",
  "object": "https://bob.social/objects/57caeb99-424c-4692-b74f-0a6682050932",
  "to": [
    "https://alice.social/users/alice/followers",
    "https://bob.social/users/bob"
  ],
  "type": "EmojiReact"
}

カスタム絵文字の例:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams",
    {
      "toot": "http://joinmastodon.org/ns#",
      "Emoji": "toot:Emoji",
      "litepub": "http://litepub.social/ns#",
      "EmojiReact": "litepub:EmojiReact"
    }
  ],
  "actor": "https://alice.social/users/alice",
  "content": ":blobwtfnotlikethis:",
  "id": "https://alice.social/activities/65379d47-b7aa-4ef6-8e4f-41149dda1d2c",
  "object": "https://bob.social/objects/57caeb99-424c-4692-b74f-0a6682050932",
  "tag": [
    {
      "icon": {
        "mediaType": "image/png",
        "type": "Image",
        "url": "https://alice.social/files/1b0510f2-1fb4-43f5-a399-10053bbd8f0f"
      },
      "id": "https://alice.social/emojis/blobwtfnotlikethis",
      "name": ":blobwtfnotlikethis:",
      "type": "Emoji",
      "updated": "2024-02-07T02:21:46.497Z"
    }
  ],
  "to": [
    "https://alice.social/users/alice/followers",
    "https://bob.social/users/bob"
  ],
  "type": "EmojiReact"
}

content を持つ Like

絵文字リアクションは、Like アクティビティとして表現することもできます。この絵文字リアクションのバリアントは、非対応の実装によって通常の「いいね」として処理され、それが望ましい場合には、実装者は EmojiReact タイプではなく Like タイプを使用してもよいです。

実装は、content を持つ LikeEmojiReact アクティビティと同じ方法で処理しなければなりません

リアクションの取り消し

絵文字リアクションは、標準の Undo アクティビティを使用して取り消すことができます:

{
  "@context": [
    "https://www.w3.org/ns/activitystreams"
  ],
  "actor": "https://alice.social/users/alice",
  "id": "https://alice.social/activities/99b8f47b-f3a9-4cf5-94a2-95352e7462d6",
  "object": "https://alice.social/activities/65379d47-b7aa-4ef6-8e4f-41149dda1d2c",
  "to": [
    "https://alice.social/users/alice/followers",
    "https://bob.social/users/bob"
  ],
  "type": "Undo"
}

emojiReactions コレクション

オブジェクトに対する絵文字リアクションのリストは、emojiReactions プロパティを使用して公開できます。その完全な IRI は http://fedibird.com/ns#emojiReactions です。

このプロパティによって指定される URL は、Likecontent を持つ)および EmojiReact アクティビティを含むコレクションに解決されなければなりません

実装

このドキュメントは、Misskey、Pleroma、Fedibird における絵文字リアクションの実装に基づいています。

この FEP が公開された後、他のいくつかのプロジェクトがそのサポートを発表しました:

参照

著作権

CC0 1.0 ユニバーサル (CC0 1.0) パブリックドメイン献呈

法的に可能な限り、この Fediverse Enhancement Proposal の著者は、この著作物に対するすべての著作権および関連する権利または隣接する権利を放棄しました。