公式Webページから叩いてるAPIを覗いてみた

<authcookie>はログインした時にSet-Cookieされるやつ。

ログイン手順はここ参照。

Announcement

POST https://vrchat.com/api/1/groups/<GroupID>/announcement

お知らせを送信する。

Header:

Content-Type: application/json
cookie: "auth=<authcookie>"

Body:

{
    text: "本文",
    title: "タイトル",
    imageId: "file_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // Galleryに登録されている画像ID もしくは null
    sendNotification: true // trueで全メンバーに通知される
}

Response (200):

{
    "authorId": "usr_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // 発信者
    "createdAt": "2022-12-04T09:37:12.746Z", // 作成日時
    "groupId": "grp_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // 発信したグループID
    "id": "gpos_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // お知らせID
    "imageId": "file_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx", // 画像ID
    "imageUrl": "<https://api.vrchat.cloud/api/1/file/file_xxxxxxxx-xxxx-xxxx-xxxxxxxxxxxx/1/file>", // 画像のURL
    "text": "本文", // 本文
    "title": "タイトル", // タイトル
    "updatedAt": "2022-12-04T09:37:12.746Z" // 更新日時
}

画像IDについて

自分のギャラリーから選ぶのはわかるけど、

API直リンで他のユーザーの画像ID入れたらどうなるんだろうね。

方法

  1. VRChat Plusに加入しているアカウントで画像を個人ギャラリーにアップロード。
  2. ブラウザの開発者ツールで画像IDを取得。
  3. Node.jsで作成したお知らせ投稿ツールにIDをソースにベタ書き。
  4. アカウントを新規で作成し、Groupに参加させ、Announcement権限を与える。