Advertisement
Guest User

Untitled

a guest
Mar 29th, 2022
297
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. const directLineTokenString = "directLineToken";
  2.  
  3. const getDirectLineToken = async () => {
  4.     if (!sessionStorage) return undefined;
  5.  
  6.     const now = Date.now();
  7.  
  8.     let tokenItem = undefined;
  9.  
  10.     try {
  11.         tokenItem = JSON.parse(
  12.             sessionStorage.getItem(directLineTokenString)
  13.         );
  14.     } catch (err) {
  15.         console.error("An error occurred: " + err);
  16.     }
  17.  
  18.     // If there is no token in storage or the token has expired
  19.     if (!tokenItem || (tokenItem && now > tokenItem.expiration)) {
  20.         try {
  21.             const res = await fetch(theURL);
  22.             const result = await res.json();
  23.             const tokenStorageItem = {
  24.                 token: result.token,
  25.                 expiration: now + result.expires_in * 1000,
  26.             };
  27.             sessionStorage.setItem(
  28.                 directLineTokenString,
  29.                 JSON.stringify(tokenStorageItem)
  30.             );
  31.             return result.token;
  32.         } catch (err) {
  33.             sessionStorage.removeItem(directLineTokenString);
  34.             console.error("An error occurred: " + err);
  35.             return undefined;
  36.         }
  37.     } else {
  38.         return tokenItem.token;
  39.     }
  40. };
  41.  
  42. (async function () {
  43.     const token = await getDirectLineToken();
  44.     window.WebChat.renderWebChat(
  45.         {
  46.             directLine: window.WebChat.createDirectLine({ token }),
  47.             styleSet,
  48.             store: store,
  49.             styleOptions: styleOptions,
  50.         },
  51.         document.getElementById("webchat")
  52.     );
  53. })().catch(async (err) => {
  54.     console.error("An error occurred: " + err);
  55. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement