Class: Client

Client

A Client is a starting point to access Twilio Programmable Chat functionality.

new Twilio.Chat.Client(token, options)

This constructor is not supposed to be used directly. Using it for client initialization is deprecated and will be removed in the future. Please use factory method instead: Client.create.
Parameters:
Name Type Description
token String Access token
options Client#ClientOptions Options to customize the Client
Properties:
Name Type Description
channels Map.<sid, Channel> A Map containing all Channels known locally on the Client. Use Client#getSubscribedChannels too ensure Channels have loaded before getting a response
connectionState Client#ConnectionState Client connection state
reachabilityEnabled Boolean Client reachability state
user User Information for logged in user
version String Current version of Chat client
Fires:

Methods


<static> create(token, options)

Factory method to create Chat client instance.
Parameters:
Name Type Description
token String Access token
options Client#ClientOptions Options to customize the Client
Returns:
Type
Promise.<Client>

createChannel( [options])

Create a Channel on the server and subscribe to its events. Default options are public Channel type with empty uniqueName and friendlyName.
Parameters:
Name Type Argument Description
options Client#CreateChannelOptions <optional>
Options for the Channel
Returns:
Type
Promise.<Channel>

getChannelBySid(channelSid)

Get a known Channel by its SID.
Parameters:
Name Type Description
channelSid String Channel sid
Returns:
Type
Promise.<Channel>

getChannelByUniqueName(uniqueName)

Get a known Channel by its unique identifier name.
Parameters:
Name Type Description
uniqueName String The unique identifier name of the Channel to get
Returns:
Type
Promise.<Channel>

getPublicChannelDescriptors()

Get the public channels directory content.
Returns:
Type
Promise.<Paginator.<ChannelDescriptor>>

getSubscribedChannels()

Get the current list of all subscribed Channels.
Returns:
Type
Promise.<Paginator.<Channel>>

getSubscribedUsers()

Returns:
List of subscribed User objects
Type
Promise.<Array.<User>>

getUser(identity)

Gets user for given identity, if it's in subscribed list - then return the user object from it, if not - then subscribes and adds user to the subscribed list.
Parameters:
Name Type Description
identity String Identity of User
Returns:
Fully initialized user
Type
Promise.<User>

getUserChannelDescriptors()

Get the User's (created by, joined or invited to) channels directory content.
Returns:
Type
Promise.<Paginator.<ChannelDescriptor>>

getUserDescriptor(identity)

Gets user descriptor for given identity.
Parameters:
Name Type Description
identity String Identity of User
Returns:
User descriptor
Type
Promise.<UserDescriptor>

handlePushNotification(notificationPayload)

Incoming push notification handler.
Parameters:
Name Type Description
notificationPayload Object Push notification payload

initialize()

Initializes library Library will be eventually initialized even without this method called, but client can use returned promise to track library initialization state. It's safe to call this method multiple times. It won't reinitialize library in ready state.
Returns:
Type
Promise.<Client>

setPushRegistrationId(channelType, registrationId)

Registers for push notifications.
Parameters:
Name Type Description
channelType string 'gcm', 'apn' and 'fcm' are supported
registrationId string Push notification id provided by platform

shutdown()

Gracefully shutting down library instance.

updateToken(token)

Update the token used by the Client and re-register with Programmable Chat services.
Parameters:
Name Type Description
token String Access token
Returns:
Type
Promise.<Client>

Type Definitions


ClientOptions

These options can be passed to Client constructor.
Type:
  • Object
Properties:
Name Type Argument Default Description
logLevel String <optional>
'error' The level of logging to enable. Valid options (from strictest to broadest): ['silent', 'error', 'warn', 'info', 'debug', 'trace']

ConnectionState

Connection state of Client.
Type:
  • 'disconnected' | 'connecting' | 'connected' | 'error' | 'denied'

CreateChannelOptions

These options can be passed to Client#createChannel.
Type:
  • Object
Properties:
Name Type Argument Description
attributes Object <optional>
Any custom attributes to attach to the Channel
friendlyName String <optional>
The non-unique display name of the Channel
isPrivate Boolean <optional>
Whether or not this Channel should be visible to uninvited Clients
uniqueName String <optional>
The unique identity name of the Channel

Events


channelAdded

Fired when a Channel becomes visible to the Client. Fired for created and not joined private channels and for all type of channels Client has joined or invited to.
Type: Channel

channelInvited

Fired when the Client is invited to a Channel.
Type: Channel

channelJoined

Fired when the Client joins a Channel.
Type: Channel

channelLeft

Fired when the Client leaves a Channel.
Type: Channel

channelRemoved

Fired when a Channel is no longer visible to the Client. Only fired for private channels.
Type: Channel

channelUpdated

Fired when a Channel's attributes or metadata have been updated. During Channel's creation and initialization this event might be fired multiple times for same joined or created Channel as new data is arriving from different sources.
Type: Channel

connectionStateChanged

Fired when Client's connection state has been changed.
Type: Client#ConnectionState

memberJoined

Fired when a Member has joined the Channel.
Type: Member

memberLeft

Fired when a Member has left the Channel.
Type: Member

memberUpdated

Fired when a Member's fields has been updated.
Type: Member

messageAdded

Fired when a new Message has been added to the Channel on the server.
Type: Message

messageRemoved

Fired when Message is removed from Channel's message list.
Type: Message

messageUpdated

Fired when an existing Message's fields are updated with new values.
Type: Message

typingEnded

Fired when a Member has stopped typing.
Type: Member

typingStarted

Fired when a Member has started typing.
Type: Member

userSubscribed

Fired when the Client is subscribed to a User.
Type: User

userUnsubscribed

Fired when the Client is unsubscribed from a User.
Type: User

userUpdated

Fired when the User's properties or reachability status have been updated.
Type: User