Skip to content

認証 (Authentication)

概要

vrcapi パッケージは Cookieベースのセッション管理と2要素認証をサポートします。

メソッド

Authenticate(ctx, config)

ユーザー名とパスワードでVRChatにログインします。2FA (TOTP) が必要な場合は TOTPCode を指定してください。

go
err := client.Authenticate(ctx, shared.AuthConfig{
    Username: "your-username",
    Password: "your-password",
    TOTPCode: "123456", // 2FA不要なら省略可
})

パラメータ

フィールド説明
UsernamestringVRChatのユーザー名
Passwordstringパスワード
TOTPCodestringTOTPコード(2FA有効時のみ必要)

エラー

  • 認証情報が不正な場合: *shared.APIError (401)
  • 2FAコードが必要なのに未指定の場合: error
  • 2FAコードが不正な場合: error

GetCurrentUser(ctx)

現在ログイン中のユーザー情報を取得します。

go
user, err := client.GetCurrentUser(ctx)
if err != nil {
    log.Fatal(err)
}
fmt.Println(user.DisplayName)

戻り値: (*shared.CurrentUser, error)


Logout(ctx)

現在のセッションをログアウトします。

go
err := client.Logout(ctx)

SaveCookies(path)

現在のセッションCookieをJSON形式でファイルに保存します。

go
err := client.SaveCookies("cookies.json")

LoadCookies(path)

保存済みCookieファイルを読み込み、再認証なしでセッションを復元します。

go
err := client.LoadCookies("cookies.json")
if err != nil {
    // Cookieが無効または期限切れ → 再認証が必要
}

クライアント生成オプション

vrcapi.NewClient() にオプションを渡すことでHTTPクライアントの動作をカスタマイズできます。

go
client, err := vrcapi.NewClient(
    vrcapi.WithUserAgent("my-app/1.0 contact@example.com"),
    vrcapi.WithTimeout(30 * time.Second),
    vrcapi.WithProxy("http://proxy.example.com:8080"),
)
オプション説明
WithUserAgent(ua)User-Agentヘッダーを設定します
WithTimeout(d)HTTPリクエストのタイムアウトを設定します
WithProxy(url)プロキシサーバーを設定します

TIP

VRChatのAPIポリシーでは、識別可能なUser-Agentの設定が推奨されています。
例: "MyApp/1.0 my-contact@example.com"

Released under the Apache-2.0 License.