開発者ポータル
試験運用中 ボット&アプリ基盤は現在も活発に開発中です。セルフホストサーバーのサポートは 2026-08-13 に提供を開始しましたが、機能範囲はクラウド版より狭くなっています。対応状況を見る
← ドキュメント

アプリ所有の絵文字

アプリケーションにアップロードした絵文字は、ボットが投稿するどのサーバーでも、そのサーバーの絵文字枠を消費せずに使えます。Discord と同等で、ワイヤーフォーマットもメッセージ本文の <:name:id> という書き方も同じです。

上限

  • 1 アプリケーションにつき 2,000 個(ソフト上限。作成時にチェックします)。
  • 256 KB の最大ファイルサイズ。
  • コンテンツタイプ: image/pngimage/jpegimage/gifimage/webp
  • 名前: 2〜32 文字、使用可能な文字は [a-zA-Z0-9_]。アプリごとに一意で、大文字小文字は区別しません(BotIconboticon は衝突します)。

アニメーションの判定

animated フラグは、アップロード時のコンテンツタイプからサーバー側で設定されます。image/gif としてアップロードされたものはアニメーション扱いです。クライアントから上書きはできません。メッセージ本文でアニメーション絵文字を参照するときは、<a:name:id> の接頭辞を使ってください(Discord と同一です)。

REST エンドポイント(ボット向け)

ボット API では、アプリケーションの絵文字に読み取り専用でアクセスできます。Authorization: Bot {token} で認証してください。

GET /applications/{application.id}/emojis
GET /applications/{application.id}/emojis/{emoji.id}

レスポンスの形(一覧の各要素と単体 GET は、Discord と同じ形です):

{
  "id": "1199283740192847360",
  "name": "thinking_orange",
  "animated": false,
  "user": { "id": "...", "username": "you" },
  "managed": false,
  "available": true
}

作成 / 更新 / 削除はボット API では提供していません。 Discord の POST /applications/{id}/emojisPATCHDELETE は GameVox では 404 を返します。絵文字の管理はすべて開発者ポータル(下記)で行います。ポータル側のモデレーション処理が人手なしで運用できるほど安定したら、Discord 互換の書き込みエンドポイントを提供する予定です。

メッセージで絵文字を使う

サーバーの絵文字と同じように、content の中でアプリの絵文字を参照します。

// 静止画
"hello <:thinking_orange:1199283740192847360>"

// アニメーション(先頭の `a:` に注意)
"thanks <a:wave_orange:1199283740192847361>"

リアクションでは、Discord と同様に PUT /channels/{channel.id}/messages/{message.id}/reactions/{emoji}/@me の URL エンコードされた絵文字パスに name:id を渡します。

ポータルでのアップロードの流れ

開発者ポータルは、アバターやアプリアイコンと同じ署名付き URL のパイプラインで絵文字をアップロードします。

  1. purpose=bot_app_emojiapplication_id を付けて POST /api/uploads/presign
  2. 返された S3 の URL にファイルを PUT
  3. 返された file_id を付けて POST /api/uploads/complete
  4. {name, file_id} を付けて POST /developer-portal/applications/{id}/emojis

サーバーはファイルの s3_key の接頭辞が bot-emojis/{application_id}/ と一致するか検証するため、他のアプリから漏れた file_id では紐づけに失敗します。

保存先

公開バケット gamevox-files-prodbot-emojis/{application_id}/{file_id}.{ext} に保存されます。論理削除された行では S3 オブジェクトはそのまま残り、孤立したオブジェクトはバックグラウンドのスイーパーが回収します。

← ドキュメントに戻る