# 安裝 SDK

> @vimine/sdk 套件、它的三個入口，以及執行要求。

URL: https://developers.vimine.network/zh-hant/start/install/

官方 SDK 是 **`@vimine/sdk`**：TypeScript、ESM、**零相依性**（使用 `fetch` 和 WebCrypto）。瀏覽器入口壓縮後約 7 kB。

<Tabs syncKey="pkg">
    <TabItem label="npm">
        ```sh
        npm install @vimine/sdk
        ```
    </TabItem>
    <TabItem label="pnpm">
        ```sh
        pnpm add @vimine/sdk
        ```
    </TabItem>
    <TabItem label="yarn">
        ```sh
        yarn add @vimine/sdk
        ```
    </TabItem>
</Tabs>

## 入口

| 匯入路徑 | 包含內容 | 執行環境 |
|---|---|---|
| `@vimine/sdk` | `Vimine`（使用 Vimine 登入 + 會員 API）、`publicApi`、`VimineError`、型別定義 | 瀏覽器；配合您自己的儲存也可用於 Node |
| `@vimine/sdk/react` | `VimineProvider`、`useVimine`、`SignInButton` | React ≥ 18（可選的 peer dependency） |
| `@vimine/sdk/server` | `VimineServer`（機密用戶端、`client_credentials`、沙箱） | Node ≥ 18——絕不能用於瀏覽器 |

```js title="browser"
import { Vimine, publicApi, VimineError } from '@vimine/sdk';
```

```js title="server"
import { VimineServer } from '@vimine/sdk/server';
```

```jsx title="React"
import { VimineProvider, useVimine, SignInButton } from '@vimine/sdk/react';
```

## 執行要求

- **瀏覽器**：`fetch`、`crypto.subtle`（WebCrypto）以及 `sessionStorage`/`localStorage`——所有現代瀏覽器都支援。頁面必須透過 `https` 提供（開發時可用 `http://localhost`）：在不安全的來源上無法使用 WebCrypto。
- **Node**：18 或更高版本（原生 `fetch` 和 `globalThis.crypto`）。
- **打包工具**：任意（Vite、webpack、esbuild 等），或配合您自己的打包產物使用 `<script type="module">`。該套件僅提供 ESM。
- **TypeScript**：已內建型別定義；無需另外新增 `@types/*`。

## 第一次登入

```js title="app.js"
import { Vimine } from '@vimine/sdk';

const vimine = new Vimine({
    clientId: 'vmc_…',                                          // 來自“開發者”頁面
    redirectUri: 'https://www.example.org/vimine/callback',  // 已為該用戶端登記
    scopes: ['profile:read', 'membership:read']
});

document.querySelector('#sign-in').addEventListener('click', () => vimine.signIn());
```

```js title="callback.js"
const result = await vimine.handleRedirect();   // 交換授權碼，儲存工作階段
if (result) {
    const me = await vimine.me.get();
    console.log(`您好，${me.first_name}`);
}
```

接下來請閱讀[使用 Vimine 登入](https://developers.vimine.network/zh-hant/guides/sign-in/)，瞭解完整流程、工作階段和登出。
