FlashDesk SDK ガイド
FlashDesk の SDK API を使って、自社バックエンドからセッショントークンを発行し、 ブラウザに埋め込んだ Viewer で接続する手順をまとめています。
Contents
SDK の概要
FlashDesk SDK は、既存の管理画面、顧客ポータル、サポート画面に リモート接続機能を組み込みたい場合に使います。
| API | 用途 |
|---|---|
POST /api/sdk/viewer-session | 埋め込み Viewer 接続用のセッションを発行 |
GET /api/sdk-api-keys | SDK API キー一覧を取得 |
POST /api/sdk-api-keys | SDK API キーを新規発行 |
POST /api/sdk-api-keys/{id}/revoke | SDK API キーを無効化 |
GET /api/org-session-audits | 組織の接続ログを取得 |
GET /api/sdk-webhooks | Webhook 設定一覧を取得 |
POST /api/sdk-webhooks | Webhook を作成 |
PATCH /api/sdk-webhooks/{id} | Webhook のイベントや有効状態を更新 |
前提条件
- 管理画面で SDK API キーを発行できること
- 接続したい Host がオンラインであること
- Host の FlashDesk ID が分かっていること。例:
12345678 - 開発者が用意した自社バックエンドのセッショントークン取得 URL があること
接続される側の端末を
Host、ブラウザで表示する側を Viewer と呼びます。
ステップ 1. SDK API キーを発行する
まず管理画面で SDK API キーを発行します。自社バックエンドはこのキーを使って FlashDesk のセッション発行 API を呼び出します。
ステップ 2. 自社バックエンドでセッショントークンを取得する
ブラウザから FlashDesk API を直接呼ぶのではなく、
自社バックエンドが内部で POST /api/sdk/viewer-session を呼び、
返ってきたセッション JSON を Viewer に返す構成にしてください。
呼び出し先 API
| メソッド | POST |
|---|---|
| URL | https://flashdesk.io/api/sdk/viewer-session |
| Content-Type | application/json |
リクエストボディ
| フィールド | 型 | 必須 | 説明 |
|---|---|---|---|
hostId | string | はい | 接続先 Host の FlashDesk ID |
apiKey | string | はい | 管理画面で発行した SDK API キー |
password | string? | いいえ | Host がパスワードモードのときに送る接続パスワード |
Node.js の例
app.get("/api/flashdesk/session-token", async (req, res) => {
const hostId = req.query.hostId;
const password = req.query.password || "";
const response = await fetch("https://flashdesk.io/api/sdk/viewer-session", {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
hostId,
apiKey: process.env.FLASHDESK_SDK_API_KEY,
password
})
});
const json = await response.json();
res.status(response.status).json(json);
});
Python / FastAPI の例
from fastapi import FastAPI
import httpx
import os
app = FastAPI()
@app.get("/api/flashdesk/session-token")
async def issue_flashdesk_token(hostId: str, password: str = ""):
async with httpx.AsyncClient(timeout=10) as client:
response = await client.post(
"https://flashdesk.io/api/sdk/viewer-session",
json={
"hostId": hostId,
"apiKey": os.environ["FLASHDESK_SDK_API_KEY"],
"password": password
}
)
return response.json()
ステップ 3. ブラウザで接続する
ブラウザでは flashdesk-viewer.js を読み込み、
自社バックエンドのセッショントークン取得 URL から新しいトークンを受け取って接続します。
SDK ファイル
flashdesk-viewer.js をダウンロードして、自社のウェブサーバーに配置してください。
実際の接続動作を確認したい場合は、デモページを別タブで開いて試せます。
ブラウザ側の最小例
<script src="flashdesk-viewer.js"></script>
<div id="viewer" style="width:100%;max-width:960px;height:540px;background:#000;"></div>
<script>
const viewer = new FlashDeskViewer({
element: document.getElementById("viewer")
});
viewer.setTokenProvider(async () => {
const response = await fetch("/api/flashdesk/session-token?hostId=12345678");
if (!response.ok) throw new Error("Failed to issue session token");
return await response.json();
});
viewer.connect();
</script>
最小構成サンプル
Node.js と静的 HTML を使った最小構成の例です。
project/
server.js
.env
public/
index.html
flashdesk-viewer.js
FLASHDESK_SDK_API_KEY=FDSDK-xxxxxxxxxxxxxxxx
HOST_ID=12345678
API リファレンス
POST /api/sdk/viewer-session
ブラウザ SDK 用のセッションを発行します。
GET /api/sdk-api-keys
現在の SDK API キー一覧を取得します。
POST /api/sdk-api-keys
新しい SDK API キーを発行します。
POST /api/sdk-api-keys/{id}/revoke
既存の SDK API キーを無効化します。
Webhook とセッションログ
GET /api/org-session-audits
誰が、いつ、どの Host に接続・切断したかを取得できます。
GET /api/sdk-webhooks
現在の Webhook 設定一覧を取得します。
POST /api/sdk-webhooks
新しい Webhook を作成します。
PATCH /api/sdk-webhooks/{id}
Webhook の有効状態や対象イベントを更新します。
| イベント | 内容 |
|---|---|
sdk.session.issued | セッションを発行した |
sdk.session.started | 接続が開始した |
sdk.session.ended | 接続が終了した |
sdk.session.failed | 接続に失敗した |
エラーコード一覧
| HTTP | error | 説明 |
|---|---|---|
| 400 | bad_request | hostId や apiKey が不足しています。 |
| 401 | unauthorized | API キーが無効です。 |
| 404 | host_not_found | 指定した Host がオンラインではありません。 |
| 409 | host_rejected | Host 側が接続を拒否しました。 |
| 504 | host_timeout | Host から応答がありません。 |
| 500 | crypto_error | 暗号処理に失敗しました。 |
| 500 | server_error | サーバー内部エラーです。 |
セキュリティ上の注意
- SDK API キーはブラウザへ直接渡さず、自社バックエンドだけで保持してください。
- 接続可能な Host を明確にし、意図しない接続先へ広げないでください。
- セッショントークン取得 URL は HTTPS で公開してください。
- 不要になった SDK API キーは管理画面ですぐに無効化してください。
- セッションログを確認し、意図しない接続が無いか定期的に監査してください。