Chat
| Function | Returns |
|---|---|
onMessage | void |
getChatters | Promise<PaginatedResultWithTotal<ChatChatter>> |
getGlobalBadges | Promise<Array<ChatBadgeSet>> |
getChannelBadges | Promise<Array<ChatBadgeSet>> |
getGlobalEmotes | Promise<Array<Emote>> |
getChannelEmotes | Promise<Array<ChannelEmote>> |
getEmotesFromSets | Promise<Array<EmoteFromSet>> |
getSettings | Promise<ChatSettings> |
getSettingsPrivileged | Promise<PrivilegedChatSettings> |
updateSettings | Promise<PrivilegedChatSettings> |
sendChatMessage | Promise<SentChatMessage> |
sendChatMessageAsApp | Promise<SentChatMessage> |
sendAnnouncement | Promise<void> |
getColorsForUsers | Promise<Record<string, string | null>> |
getColorForUser | Promise<string | undefined | null> |
setColorForUser | Promise<void> |
shoutoutUser | Promise<void> |
getSharedChatSession | Promise<SharedChatSession | null> |
getUserEmotes | Promise<PaginatedResult<UserEmote>> |
Functions
onMessage
twitch.chat.onMessage(callback: (user: string, text: string, data: ChatMessage) => void): void
getChatters
twitch.chat.getChatters(pagination?: ForwardPagination): Promise<PaginatedResultWithTotal<ChatChatter>>
getGlobalBadges
twitch.chat.getGlobalBadges(): Promise<Array<ChatBadgeSet>>
getChannelBadges
twitch.chat.getChannelBadges(): Promise<Array<ChatBadgeSet>>
getGlobalEmotes
twitch.chat.getGlobalEmotes(): Promise<Array<Emote>>
getChannelEmotes
twitch.chat.getChannelEmotes(): Promise<Array<ChannelEmote>>
getEmotesFromSets
twitch.chat.getEmotesFromSets(setIds: Array<string>): Promise<Array<EmoteFromSet>>
getSettings
twitch.chat.getSettings(): Promise<ChatSettings>
getSettingsPrivileged
twitch.chat.getSettingsPrivileged(): Promise<PrivilegedChatSettings>
updateSettings
twitch.chat.updateSettings(settings: UpdateChatSettingsParams): Promise<PrivilegedChatSettings>
sendChatMessage
twitch.chat.sendChatMessage(message: string, params?: SendChatMessageParams): Promise<SentChatMessage>
sendChatMessageAsApp
twitch.chat.sendChatMessageAsApp(userId: UserIdResolvable, message: string, params?: SendChatMessageParams): Promise<SentChatMessage>
sendAnnouncement
twitch.chat.sendAnnouncement(announcement: SendChatAnnouncementParams): Promise<void>
getColorsForUsers
twitch.chat.getColorsForUsers(users: Array<UserIdResolvable>): Promise<Record<string, string | null>>
getColorForUser
twitch.chat.getColorForUser(userId: UserIdResolvable): Promise<string | undefined | null>
setColorForUser
twitch.chat.setColorForUser(userId: UserIdResolvable, color: ChatUserColor): Promise<void>
shoutoutUser
twitch.chat.shoutoutUser(userId: UserIdResolvable): Promise<void>
getSharedChatSession
twitch.chat.getSharedChatSession(): Promise<SharedChatSession | null>
getUserEmotes
twitch.chat.getUserEmotes(filter?: UserEmotesFilter): Promise<PaginatedResult<UserEmote>>
Types
ChannelEmote
type ChannelEmote = {
tier: "" | "1000" | "2000" | "3000"
emoteType: string
emoteSetId: string
images: EmoteImage
id: string
name: string
format: Array<EmoteFormat>
scale: Array<EmoteScale>
themeMode: Array<EmoteThemeMode>
}
ChatAnnouncementColor
type ChatAnnouncementColor = "blue" | "green" | "orange" | "purple" | "primary"
ChatBadgeSet
type ChatBadgeSet = {
setId: string
versions: Array<ChatBadgeVersion>
}
ChatBadgeVersion
type ChatBadgeVersion = {
id: string
imageUrl1X: string
imageUrl2X: string
imageUrl4X: string
title: string
description: string
clickAction: string | null
clickUrl: string | null
}
ChatChatter
type ChatChatter = {
userId: string
userLogin: string
userName: string
}
ChatMessage
type ChatMessage = {
id: string
date: Date
bits: number
text: string
parts: Array<ChatMessagePart>
rewardId: string | null
emotes: any
badges: any
isFirst: boolean
isCheer: boolean
isRedemption: boolean
isReturningChatter: boolean
isHighlight: boolean
isReply: boolean
isHypeChat: boolean
parentMessageId: string | null
parentMessageText: string | null
parentMessageUserId: string | null
parentMessageUserName: string | null
parentMessageUserDisplayName: string | null
threadMessageId: string | null
threadMessageUserId: string | null
hypeChatLevel: number | null
hypeChatAmount: number | null
hypeChatCurrency: string | null
hypeChatDecimalPlaces: number | null
hypeChatLocalizedAmount: number | null
hypeChatIsSystemMessage: boolean | null
user: ChatMessageUser
}
ChatMessageCheerPart
type ChatMessageCheerPart = {
type: 'cheer'
name: string
amount: number
length: number
position: number
}
ChatMessageEmotePart
type ChatMessageEmotePart = {
id: string
type: 'emote'
name: string
length: number
position: number
}
ChatMessagePart
type ChatMessagePart = ChatMessageTextPart | ChatMessageCheerPart | ChatMessageEmotePart
ChatMessageTextPart
type ChatMessageTextPart = {
type: 'text'
text: string
length: number
position: number
}
ChatMessageUser
type ChatMessageUser = {
id: string
type: string
name: string
displayName: string
color: string
badge: Dictionary<string>
isArtist: boolean
isFounder: boolean
isSubscriber: boolean
isBroadcaster: boolean
isMod: boolean
isVip: boolean
}
ChatSettings
type ChatSettings = {
broadcasterId: string
slowMode: boolean
slowModeWaitTime: number | null
followerMode: boolean
followerModeDuration: number | null
subscriberMode: boolean
emoteMode: boolean
uniqueChatMode: boolean
}
ChatUserColor
type ChatUserColor = "blue" | "green" | "blue_violet" | "cadet_blue" | "chocolate" | "coral" | "dodger_blue" | "firebrick" | "golden_rod" | "hot_pink" | "orange_red" | "red" | "sea_green" | "spring_green" | "yellow_green" | `#${string}`
Emote
type Emote = {
images: EmoteImage
id: string
name: string
format: Array<EmoteFormat>
scale: Array<EmoteScale>
themeMode: Array<EmoteThemeMode>
}
EmoteFormat
type EmoteFormat = "animated" | "static"
EmoteFromSet
type EmoteFromSet = {
emoteType: string
emoteSetId: string
ownerId: string
images: EmoteImage
id: string
name: string
format: Array<EmoteFormat>
scale: Array<EmoteScale>
themeMode: Array<EmoteThemeMode>
}
EmoteImage
type EmoteImage = {
url1X: string
url2X: string
url4X: string
}
EmoteScale
type EmoteScale = "1.0" | "2.0" | "3.0"
EmoteThemeMode
type EmoteThemeMode = "dark" | "light"
ForwardPagination
type ForwardPagination = {
limit?: number
after?: string
}
PaginatedResult
type PaginatedResult<T> = {
data: Array<T>
cursor?: string
}
PaginatedResultWithTotal
type PaginatedResultWithTotal<T> = {
data: Array<T>
cursor: string
total: number
}
PrivilegedChatSettings
type PrivilegedChatSettings = {
moderatorId: string
nonModeratorChatDelay: boolean
nonModeratorChatDelayDuration: number | null
broadcasterId: string
slowMode: boolean
slowModeWaitTime: number | null
followerMode: boolean
followerModeDuration: number | null
subscriberMode: boolean
emoteMode: boolean
uniqueChatMode: boolean
}
SendChatAnnouncementParams
type SendChatAnnouncementParams = {
message: string
color?: ChatAnnouncementColor
}
SendChatMessageParams
type SendChatMessageParams = {
replyParentMessageId?: string
}
SentChatMessage
type SentChatMessage = {
messageId: string
isSent: boolean
dropReason?: {
code: string
message: string
}
}
SharedChatSession
type SharedChatSession = {
sessionId: string
hostBroadcasterId: string
participants: Array<SharedChatSessionParticipant>
createdAt: string
updatedAt: string
}
SharedChatSessionParticipant
type SharedChatSessionParticipant = {
broadcasterId: string
}
UpdateChatSettingsParams
type UpdateChatSettingsParams = {
slowModeEnabled?: boolean
slowModeDelay?: number
followerOnlyModeEnabled?: boolean
followerOnlyModeDelay?: number
subscriberOnlyModeEnabled?: boolean
emoteOnlyModeEnabled?: boolean
uniqueChatModeEnabled?: boolean
nonModeratorChatDelayEnabled?: boolean
nonModeratorChatDelay?: number
}
UserEmote
type UserEmote = {
emoteType: string
emoteSetId: string
ownerId: string
id: string
name: string
format: Array<EmoteFormat>
scale: Array<EmoteScale>
themeMode: Array<EmoteThemeMode>
}
UserEmotesFilter
type UserEmotesFilter = {
broadcaster?: UserIdResolvable
limit?: number
after?: string
}
UserIdResolvable
type UserIdResolvable = string | UserIdResolvableType
UserIdResolvableType
type UserIdResolvableType = {
id: string
}