Skip to content
otncPublic

About

TypeScript/JavaScript SDK for mixi2 Application API

Topics

Resources

Code of conduct

Contributing

Stars

18 stars

Watchers

0 watching

Forks

Latest commit

 

History

271 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

mixi2-js

npm version npm downloads JSR JSR Score License Node.js TypeScript Build Prettier ESLint tsdown

mixi2 の Application API を利用するための 非公式 TypeScript/JavaScript SDK です。

公式 Go SDK および 公式 API 仕様 に基づいて作成されています。

Note

これは MIXI 社公式のプロダクトではありません。コミュニティメンバーによるオープンソースプロジェクトです。


インストール

Warning

mixi2-js v1.5.0 より、Node.js v20.19.0 未満はサポートされなくなりました。 Node.js v18 系では動作しません。Node.js v20.19.0 以上をご使用ください。

npm install mixi2-js

# or

npx jsr add @otoneko1102/mixi2-js

ESM・CommonJS の両方に対応しています。TypeScript の型定義 (.d.ts) も同梱されています。

Skills

AI エージェント (Claude Code、Codex など) が mixi2-js を使ったコードを書くための Skill を公開しています。次のどちらかの方法でインストールできます。

GitHub CLI (gh skill)

gh skill install otnc/mixi2-js

vercel-labs/skills (npx skills)

npx skills add otnc/mixi2-js

対応環境

mixi2-js は以下のランタイム API に依存しているため、環境によって使える機能が異なります。

  • node:http2 (@grpc/grpc-js 経由): API クライアントと gRPC ストリーミング
  • node:http と node:crypto (Ed25519): WebhookServer のサーバーと署名検証
  • Fetch API (Request / Response) と crypto.subtle (Ed25519): createWebhookHandler の受信と署名検証
  • fetch と btoa: 認証とメディアアップロード
環境 認証 (OAuth2Authenticator) API クライアント (Client) Webhook (WebhookServer) Webhook (createWebhookHandler) gRPC ストリーミング (StreamWatcher)
Node.js ✅ ✅ ✅ ✅ ✅
Bun ✅ ✅ ✅ ✅ ✅
Deno ✅ ✅ ✅ ✅ ✅
Cloudflare Workers ✅ ❌ ✅ ✅ ❌

✅ 動作確認済み、⚠️ 制限あり、❓ 未検証、❌ 非対応

詳細な対応状況

CI でビルド済みのパッケージを各ランタイムで動かし、結果を毎回確認しています。Node.js / Bun / Deno では、ローカルの TLS gRPC サーバーに対する実際の通信 (API 呼び出しとストリームでのイベント受信)、Webhook の署名検証、認証を確認しています。Cloudflare Workers は Wrangler 経由で workerd 上で動かしています。

  • Node.js: 20.19.0 以降。テストは 20.19.0 / 22 / 24 で実行しています
  • Bun: 最新版で確認しています (1.4 系で確認済み)
  • Deno: 2.x の最新版で確認しています (2.9 系で確認済み)。npm:mixi2-js または JSR 版を Node.js 互換レイヤーで動かします
  • Node.js 20 では、createWebhookHandler が使う Web Crypto の Ed25519 が ExperimentalWarning を出します。Node.js では WebhookServer の利用をおすすめします
  • Cloudflare Workers: nodejs_compat を有効にすると、認証と Webhook が使えます。WebhookServer は cloudflare:node の httpServerHandler で Workers の fetch につなぎます (使い方はドキュメントを参照)。API クライアントと gRPC ストリーミングは使えません。mixi2 の API は HTTP/2 の gRPC だけを受け付けますが、Workers の fetch は外部へ HTTP/1.1 で接続し、node:http2 にはクライアント機能がないためです

Tip

サーバーレス環境ではランタイムが対応していても gRPC ストリーミングを常時接続できない場合があります。環境に合わせて Webhook と gRPC ストリーミングを使い分けてください。対応環境を広げる取り組みは Issues で管理しています。


機能概要

モジュール 説明
OAuth2Authenticator OAuth2 Client Credentials 認証(アクセストークンの取得・キャッシュ・有効期限 1 分前に自動更新)
Client gRPC API クライアント (公式 API の全 15 RPC に対応)
WebhookServer HTTP Webhook サーバー(Ed25519 署名検証・Ping 自動応答)
createWebhookHandler Fetch API (Request → Response) で動く Webhook ハンドラ (Cloudflare Workers・Deno・Bun・Hono など)
StreamWatcher gRPC ストリーミング(指数バックオフによる自動再接続)

Helpers (拡張機能)

mixi2-js/helpers は、公式 API 仕様には含まれない SDK 独自の便利ユーティリティを提供します。

ヘルパー 説明
EventRouter イベントタイプ別にハンドラを登録できるルーター
PostBuilder メソッドチェーンでポスト作成リクエストを組み立てるビルダー
MediaUploader メディアアップロードの開始〜完了待機を自動化
ReasonFilter EventReason ベースでイベントをフィルタリング
EventDeduplicator Webhook リトライ等による重複イベントをスキップ
EventLogger 受信イベントをログ出力するデバッグ用ミドルウェア
TextSplitter 長いテキストを 149 文字制限内に自動分割
Address 公式エンドポイント URL を返すヘルパー
CommunityFilter 特定のコミュニティのイベントだけを通す (Plugin 向け)
MemberEventRouter メンバーの参加・退出イベントを振り分け (Plugin 向け)
PluginManagedRouter インストール・アンインストールイベントを振り分け (Plugin 向け)
MemberListPager コミュニティのメンバー一覧をページ送りで取得 (Plugin 向け)
ApplicationPager インストール済みコミュニティ一覧をページ送りで取得 (Plugin 向け)

ドキュメント

使い方・API リファレンス・拡張機能の詳細は ドキュメントサイト を参照してください。


関連リンク


バージョニング

mixi2-js のメジャーバージョンは、対応する mixi2 API のメジャーバージョンに合わせています (mixi2 API v1.x には mixi2-js v1.x が対応)。SDK 独自の破壊的変更はマイナーバージョンで行い、CHANGELOG の Breaking changes に記載します。詳細は CONTRIBUTING.md を参照してください。


貢献

貢献を歓迎しています!詳細は CONTRIBUTING.md を参照してください。

このプロジェクトは Contributor Covenant 行動規範 に準拠しています。

貢献者

Made with contrib.rocks

ライセンス

Apache-2.0

proto/ 以下の Protocol Buffers 定義は mixi2-api (Copyright 2025 MIXI, Inc.、Apache-2.0) から同梱しています。サードパーティのライセンス表記は THIRD_PARTY_NOTICES.md を参照してください。

About

TypeScript/JavaScript SDK for mixi2 Application API

Topics

Resources

Code of conduct

Contributing

Stars

18 stars

Watchers

0 watching

Forks

Releases

Sponsor this project

Packages

Contributors

Languages