管理画面の SDK API キーに戻る

FlashDesk SDK ガイド

FlashDesk の SDK API を使って、自社バックエンドからセッショントークンを発行し、 ブラウザに埋め込んだ Viewer で接続する手順をまとめています。

Contents

  1. SDK の概要
  2. 前提条件
  3. ステップ 1. SDK API キーを発行する
  4. ステップ 2. 自社バックエンドでセッショントークンを取得する
  5. ステップ 3. ブラウザで接続する
  6. 最小構成サンプル
  7. API リファレンス
  8. Webhook とセッションログ
  9. エラーコード一覧
  10. セキュリティ上の注意

SDK の概要

FlashDesk SDK は、既存の管理画面、顧客ポータル、サポート画面に リモート接続機能を組み込みたい場合に使います。

API用途
POST /api/sdk/viewer-session埋め込み Viewer 接続用のセッションを発行
GET /api/sdk-api-keysSDK API キー一覧を取得
POST /api/sdk-api-keysSDK API キーを新規発行
POST /api/sdk-api-keys/{id}/revokeSDK API キーを無効化
GET /api/org-session-audits組織の接続ログを取得
GET /api/sdk-webhooksWebhook 設定一覧を取得
POST /api/sdk-webhooksWebhook を作成
PATCH /api/sdk-webhooks/{id}Webhook のイベントや有効状態を更新

前提条件

用語
接続される側の端末を Host、ブラウザで表示する側を Viewer と呼びます。

ステップ 1. SDK API キーを発行する

まず管理画面で SDK API キーを発行します。自社バックエンドはこのキーを使って FlashDesk のセッション発行 API を呼び出します。

ステップ 2. 自社バックエンドでセッショントークンを取得する

ブラウザから FlashDesk API を直接呼ぶのではなく、 自社バックエンドが内部で POST /api/sdk/viewer-session を呼び、 返ってきたセッション JSON を Viewer に返す構成にしてください。

呼び出し先 API

メソッドPOST
URLhttps://flashdesk.io/api/sdk/viewer-session
Content-Typeapplication/json

リクエストボディ

フィールド必須説明
hostIdstringはい接続先 Host の FlashDesk ID
apiKeystringはい管理画面で発行した SDK API キー
passwordstring?いいえ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接続に失敗した

エラーコード一覧

HTTPerror説明
400bad_requesthostIdapiKey が不足しています。
401unauthorizedAPI キーが無効です。
404host_not_found指定した Host がオンラインではありません。
409host_rejectedHost 側が接続を拒否しました。
504host_timeoutHost から応答がありません。
500crypto_error暗号処理に失敗しました。
500server_errorサーバー内部エラーです。

セキュリティ上の注意