Skip to content

livechat/lc-sdk-js

Repository files navigation

LiveChat Platform API SDK for Javascript

This Software Development Kit written in Typescript helps developers build external backend apps that extend LiveChat features. The SDK makes it easy to use Agent Chat API, Customer Chat API and Configuration API.

API protocol docs

For protocol documentation of LiveChat APIs, please go to Livechat Platform Docs.

Technical docs

For technical documentation visit docs

SDK version vs API version

Here is the relation between SDK versions and API versions:

  • lc-sdk-js 3.x.x -> LiveChat API 3.3
  • lc-sdk-js 4.x.x -> LiveChat API 3.4
  • lc-sdk-js 5.x.x -> LiveChat API 3.5
  • lc-sdk-js 6.x.x -> LiveChat API 3.6
  • ...

All versions of LiveChat JS SDK are available on npm. Note that developer-preview version is not completed yet - it may introduce breaking changes in the future.

Installation

npm

To install latest stable version use:

npm install @livechat/lc-sdk-js

Authorization

Authorization in SDK is based on TokenGetter required in both Web and RTM API classes. Example token getter:

const tokenGetter = () => ({
  accessToken: "dal:ab-Cd_dE40f9G3H297Ijkl6MN24",
  organizationID: "c31de08c-799b-488a-982a-8e64dbadbf5a",
  region: "dal",
  tokenType: "Bearer",
});

Web API vs RTM API

In case of Web APIs, the example token getter corresponds to the following headers in requests:

  • Authorization: Bearer dal:ab-Cd_dE40f9G3H297Ijkl6MN24
  • X-Region: dal

In case of RTM APIs, the example token getter corresponds to:

  • query string used when opening the WebSocket connection: ?organization_id=c31de08c-799b-488a-982a-8e64dbadbf5a&region=dal
  • token used in login method: Bearer dal:ab-Cd_dE40f9G3H297Ijkl6MN24

Organization's region

For Bearer tokens, organization's region is the token prefix before the colon:

  • accessToken: dal:ab-Cd_dE40f9G3H297Ijkl6MN24 -> region: dal

If you need to find region for Personal Access Token (PAT), use tokenGetterFromPAT helper.

Browser and Node.js compatibility

Due to the absence of standard library WebSocket implementation in Node.js and presence of WebSocket class in browser environments, using the RTM API requires the developer to pass an appropriate WebSocket implementation to the constructor of the RTM clients:

import { Agent, Customer } from "@livechat/lc-sdk-js";

const agentTokenGetter = () => ...
const customerTokenGetter = () => ...

const agentAPI = new Agent.RTM(WebSocket, agentTokenGetter);
const customerAPI = new Customer.RTM(WebSocket, customerTokenGetter);

See the examples:

Feedback

If you find any bugs or have trouble implementing the code on your own, please create an issue or contact us LiveChat for Developers.

About LiveChat

LiveChat is an online customer service software with live support, help desk software, and web analytics capabilities. It's used by more than 30,000 companies all over the world. For more info, check out LiveChat.