コンテンツにスキップ

API クライアント

Client は 8 つの RPC メソッドを提供する gRPC API クライアントです。

// ESM
import { OAuth2Authenticator, Client, MediaUploadType, LanguageCode } from 'mixi2-js';
// CJS
const { OAuth2Authenticator, Client, MediaUploadType, LanguageCode } = require('mixi2-js');
const authenticator = new OAuth2Authenticator({
clientId: process.env.CLIENT_ID!,
clientSecret: process.env.CLIENT_SECRET!,
tokenUrl: process.env.TOKEN_URL!,
});
const client = new Client({
apiAddress: process.env.API_ADDRESS!,
authenticator,
});
プロパティ必須説明
apiAddressstringAPI サーバーアドレス
authenticatorAuthenticator認証インスタンス
メソッド引数戻り値説明
getUsers(userIdList)string[]Promise<User[]>ユーザー情報を一括取得
getPosts(postIdList)string[]Promise<Post[]>ポスト情報を一括取得
createPost(request)CreatePostRequestPromise<Post>ポストを作成(返信/引用/メディア添付対応)
initiatePostMediaUpload(request)InitiatePostMediaUploadRequestPromise<InitiatePostMediaUploadResponse>メディアアップロードを開始
getPostMediaStatus(mediaId)stringPromise<GetPostMediaStatusResponse>メディアの処理状況を取得
sendChatMessage(request)SendChatMessageRequestPromise<ChatMessage>チャットメッセージを送信
getStamps(request?)GetStampsRequest?Promise<OfficialStampSet[]>スタンプ一覧を取得
addStampToPost(postId, stampId)string, stringPromise<Post>ポストにスタンプを付与
close()-voidgRPC 接続を閉じる
const users = await client.getUsers(['user-id-1', 'user-id-2']);
const post = await client.createPost({ text: 'Hello mixi2!' });
フィールド必須説明
textstringポスト本文(最大 149 文字)
inReplyToPostIdstring-返信先ポスト ID
quotedPostIdstring-引用対象ポスト ID
mediaIdListstring[]-添付メディア ID(最大 4 件)
postMaskPostMask-マスク設定(センシティブ/ネタバレ)
publishingTypePostPublishingType-配信設定

メディアアップロード → ポスト添付

Section titled “メディアアップロード → ポスト添付”
const upload = await client.initiatePostMediaUpload({
contentType: 'image/png',
dataSize: 1024,
mediaType: MediaUploadType.IMAGE,
});
// upload.uploadUrl に POST でメディアデータを送信
const status = await client.getPostMediaStatus(upload.mediaId);
// status.status === MediaUploadStatus.COMPLETED になったら添付可能
await client.createPost({ text: '画像付き!', mediaIdList: [upload.mediaId] });
フィールド必須説明
contentTypestringContent-Type(例: image/jpeg
dataSizenumberデータサイズ(バイト)
mediaTypeMediaUploadTypeメディア種別(IMAGE / VIDEO
descriptionstring-メディアの説明
const message = await client.sendChatMessage({
roomId: 'room-id',
text: 'Hello!',
});
フィールド必須説明
roomIdstring送信先ルーム ID
textstringテキスト(text または mediaId のいずれか必須)
mediaIdstring添付メディア ID
// スタンプ一覧取得
const stamps = await client.getStamps({ officialStampLanguage: LanguageCode.JP });
// ポストにスタンプを付与
await client.addStampToPost('post-id', 'stamp-id');
client.close();

各 RPC メソッドの詳細は 公式 API 仕様 を参照してください。