次の方法で共有


認証トークンの送信

Customer Service 用オムニチャネルには、Dynamics 365 Customer Service Enterprise の機能を拡張する一連の機能が用意されていて、組織はデジタル メッセージング チャネルを通して顧客と即座につながり、やり取りできるようになります。 Customer Service 用オムニチャネルにアクセスする際は、追加のライセンスが必要です。 詳細については、Dynamics 365 Customer Service 価格の概要Dynamics 365 Customer Service 価格プラン ページを参照してください。

顧客が会話を開始するときに顧客を認証するには、Customer Service 用オムニチャネルに認証トークンを渡します。 このトークンはドメインの顧客のサインインを検証するため、また、定義済みのコンテキスト変数に基づく情報を抽出するために使用されます。 カスタム認証はオプションであり、チャット ウィジェットが Power Apps ポータル外部でホストされている場合にのみ関連します。

重要

  • JSON Web トークン (JWT) のペイロードでは、lwicontexts キーに提供されている値は、シリアル化されたカスタム コンテキストである必要があります。
  • カスタム コンテキストは、キー / 値のペアです。 プリミティブの値のみが、キーで許可されます。
  • カスタム コンテキストのキーは、Customer Service 用オムニチャネルの関連する作業ストリーム用に作成されるコンテキスト変数に対応する必要があります。
  • 認証のトークン プロバイダーは、会話を開始するときにライブ チャット ウィジェットに呼び出されます。

認証のトークン プロバイダーに関連する SDKs は、認証がウィジェットに対応している場合にのみ適用されます。 ウィジェット の認証を有効にするには、「 チャット認証設定の作成」を参照してください

会話を開始するときに、認証トークンを送信するには以下の手順に従ってください:

  1. JSON ペイロードの有効な JWT を生成します。 詳細情報: setAuthTokenProvider

  2. ライブ チャット メソッドは、 lcw:readyイベント が発生した後に呼び出す必要があります。 ウィンドウ オブジェクトに独自のイベント リスナーを追加して、イベントをリスニングできます。

  3. lcw:ready イベントが発生したら、 setAuthTokenProvider メソッドを使用して、ライブ チャットに認証トークン プロバイダーを登録します。

    Note

    タイムアウトを回避するには、 setAuthTokenProvider メソッドの authTokenProvider 関数が10秒以内に応答する必要があります。

  4. チャットを開始するには、 startChat メソッドを使用します。

サンプル コード

let payloadToEncrypt = {
    "sub" : "87b4d06c-abc2-e811-a9b0-000d3a10e09e",
    "lwicontexts" :"{\"msdyn_cartvalue\":\"10000\", \"msdyn_isvip\":\"false\"}",
    "iat" : 1542622071,
    "iss" : "contosohelp.com",
    "exp" : 1542625672,
    "nbf" : 1542622072
};

function convertToJwtToken(payloadToEncrypt){
  // Ideally, you should call your service to convert the payload to a valid JWT token
  return Promise.resolve("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiI4N2I0ZDA2Yy1hYmMyLWU4MTEtYTliMC0wMDBkM2ExMGUwOWUiLCJsd2ljb250ZXh0cyI6IntcIm1zZHluX2NhcnR2YWx1ZVwiOlwiMTAwMDBcIiwgXCJtc2R5bl9pc3ZpcFwiOlwiZmFsc2VcIn0iLCJpYXQiOjE1NDI2MjIwNzEsImlzcyI6ImNvbnRvc29oZWxwLmNvbSIsImV4cCI6MTU0MjYyNTY3MiwibmJmIjoxNTQyNjIyMDcyfQ.r37z1M5rMyRYMOJ-rhyTRYFOgvl9N7KvTMueSFPkiuM");
}

function authTokenProvider(callback){
    convertToJwtToken(payloadToEncrypt).then(function (jwtToken){
    // Calling the callback with the valid JWT token
   callback(jwtToken);
   });
}

window.addEventListener("lcw:ready", function handleLivechatReadyEvent(){
    // Handle live chat ready event
    // Can use the SDK methods now
    // Setting authentication token provider to be used for the chat
    Microsoft.Omnichannel.LiveChatWidget.SDK.setAuthTokenProvider(authTokenProvider);

   // Starting a new chat
   Microsoft.Omnichannel.LiveChatWidget.SDK.startChat();
});

window.addEventListener("lcw:error", function handleLivechatErrorEvent(errorEvent){
  // Handle livechat error event
   console.log(errorEvent);
});

関連情報

setAuthTokenProvider
getAuthTokenProvider
removeAuthTokenProvider
ライブチャットSDK JavaScript APIリファレンス
カスタム コンテキストの送信