開発ガイド
イベント
mixi2 からアプリケーションに送信されるイベントの種類と構造を解説します。
mixi2 では、ユーザーがアプリケーションにメンションしたり、DM を送信したりすると、その情報がイベントとしてアプリケーションサーバーに配信されます。このページでは、イベントの種類と構造について説明します。
前提条件
- アプリケーションの概念を理解していること
- クイックスタートを完了していること
イベントの種類
アプリケーションが受信できるイベントは以下の通りです。
| イベント種別 | 説明 |
|---|---|
EVENT_TYPE_PING | 接続確認用のイベント |
EVENT_TYPE_POST_CREATED | ポストが作成されたときに発生 |
EVENT_TYPE_CHAT_MESSAGE_RECEIVED | チャット/DM メッセージを受信したときに発生 |
ポスト作成イベント(PostCreatedEvent)
ユーザーがアプリケーションにメンション、リプライ、または引用を行った場合に発生します。
| フィールド | 型 | 説明 |
|---|---|---|
event_reason_list | EventReason[] | イベントが発生した理由のリスト |
post | Post | 作成されたポストの情報 |
issuer | User | ポストを作成したユーザーの情報 |
event_reason_list には、イベントが発生した理由が含まれます。
| イベント理由(EventReason) | 説明 |
|---|---|
EVENT_REASON_POST_REPLY | アプリケーションのポストに返信された |
EVENT_REASON_POST_MENTIONED | ポスト内でメンションされた |
EVENT_REASON_POST_QUOTED | アプリケーションのポストが引用された |
チャットメッセージ受信イベント(ChatMessageReceivedEvent)
ユーザーがアプリケーションに DM を送信した場合に発生します。
| フィールド | 型 | 説明 |
|---|---|---|
event_reason_list | EventReason[] | イベントが発生した理由のリスト |
message | ChatMessage | 受信したメッセージの情報 |
issuer | User | メッセージを送信したユーザーの情報 |
event_reason_list には、イベントが発生した理由が含まれます。
| イベント理由(EventReason) | 説明 |
|---|---|
EVENT_REASON_DIRECT_MESSAGE_RECEIVED | チャット/ダイレクトメッセージを受信した |
イベントの受信方式
イベントを受信するには、gRPC ストリーム方式と Webhook 方式の 2 つの方法があります。それぞれの詳細は以下のページを参照してください。
| 方式 | 用途 | ガイド |
|---|---|---|
| gRPC ストリーム | リアルタイム監視。ローカル開発に適しています | gRPC ストリーム |
| HTTP Webhook | HTTPS に対応したサーバー環境 | Webhook |
イベント配信の特性
イベント処理を実装する際は、以下の特性を考慮してください。
順序保証
イベントの処理順序は保証されません。イベントが発生した順序とは異なる順番で届く可能性があるため、特定の順序に依存しない設計にしてください。
配信保証
イベントは Best-effort で配信されます。
- gRPC ストリーム方式で接続が切れた場合、その間に発生したイベントは失われます
- Webhook 方式では、配信失敗時に最大 3 回までリトライされます。リトライにより同じイベントが複数回届く可能性があります
Webhook 方式ではリトライによりイベントが重複して届く場合があるため、アプリケーション側で冪等性を考慮した設計を行ってください。
次のステップ
- Webhook でイベントを受信する - Webhook 方式の実装・署名検証・デプロイ
- gRPC ストリームでイベントを受信する - gRPC 方式の実装・再接続
- SDK ガイド - SDK の基本(認証、イベントハンドラ)
- API の使い方 - イベントを受信した後の応答方法
- API リファレンス - イベントの詳細な型定義