メインコンテンツまでスキップ

init()

init()は、ブラウザでMonitorDog SDK instanceを作成し、SDKが使用する基本設定を登録する一度だけ呼び出す関数です。

この関数はログインや検知をすぐに実行しません。貴社Webサイトでユーザーがログインした後にlogin()を呼び出せるようにSDK instanceを準備します。

static init(options: MonitorDogDetectorOptions): Promise<MonitorDogDetector>

関数引数の説明

init()関数の主なパラメーターは次のとおりです。

  • apiBaseUrl (必須): MonitorDog APIサーバーURLです。
  • sessionTokenProvider (必須): login()時点でSDK access tokenを取得するために呼び出されるcallbackです。このcallbackは貴社の顧客サーバーaccess token endpointを呼び出す必要があり、ブラウザでMonitorDog partner API keyを直接使用してはいけません。
  • onDetect (必須): 各frameの検知結果を受け取るcallbackです。携帯電話の検知有無に応じて、貴社の画面ブロック/解除ロジックを実行できます。
  • onError: SDK実行中に発生したエラーcallbackです。
  • video: SDKが使用するvideo elementです。省略するとSDKが内部video elementを作成します。
  • constraints: Webカメラ制約です。カメラ選択、解像度、前面/背面カメラの向きなどを指定するときに使用します。
  • runInBackground: タブが非表示になったときも検知を継続するかどうかです。
  • overlay: SDK default overlayを使用するかどうかです。

init()は内部的にdetector instanceを作成し、後でgetDetector()からアクセスできるようにsingletonも登録します。

実装例

import { MonitorDogDetector } from "@monitordog/detector";

async function getMonitorDogAccessToken({ email }: { email: string }) {
const response = await fetch("/api/monitordog/access-token", {
method: "POST",
headers: {
"content-type": "application/json",
},
credentials: "include",
body: JSON.stringify({ email }),
});

if (!response.ok) {
throw new Error("Failed to create MonitorDog access token");
}

return response.json();
}

const detector = await MonitorDogDetector.init({
apiBaseUrl: "https://api.monitor.dog/v1",

sessionTokenProvider: getMonitorDogAccessToken,

onDetect: (result) => {
if (result.phoneDetected) {
blockScreen();
return;
}

unblockScreen();
},

onError: (error) => {
console.error("MonitorDog SDK error", error);
},
});

目次

このコンテンツを共有