As of v2.2.0, node-steamcommunity allows you to use Steam Chat via Steam's web chat service. Chat is accessed through properties, methods, and events on your SteamCommunity object.
WEBCHAT VIA NODE-STEAMCOMMUNITY IS DEPRECATED AND WILL BE REMOVED IN A FUTURE RELEASE. Steam's new webchat goes through the CM servers, so you should use node-steam-user instead.
Properties
chatState
The current state of our chat connection. One of the following values:
SteamCommunity.ChatState = {
"Offline": 0,
"LoggingOn": 1,
"LogOnFailed": 2,
"LoggedOn": 3
};
You can only send and receive chat messages if this value is LoggedOn.
Methods
chatLogon([interval][, uiMode])
interval- The interval in milliseconds between polling requests (default 500)uiMode-webto get a globe icon next to your name,mobileto get a phone icon (defaultweb)
v2.4.0 or later is required to use the uiMode argument
Starts logging you into web chat. Steam web chat uses long polling so a short interval value should be safe. Default is 500.
Listen for the chatLoggedOn event to know when you're successfully logged on. Listen for the chatLogOnFailed as there may be a fatal error while logging on.
chatMessage(recipient, text[, type][, callback])
recipient- The recipient of our message, as aSteamIDobject or something that can parse into aSteamIDobject (STEAM_0:0:23071901,[U:1:46143802], or76561198006409530formats)text- The message texttype- Optional. The type of message you're sending. Default issaytext. Another possible value istyping.callback- Optional. Called when the message is successfully sent or an error occurs.err- AnErrorobject on failure,nullon success
Sends a chat message to a recipient. A saytext message is a regular chat message. If you send a typing message, text is ignored and the recipient's chat window will say that you're typing for 20 seconds.
chatLogoff()
Logs you off of chat.
Events
chatLogOnFailed
err- AnErrorobjectfatal-trueif this is a fatal error,falseif not (will keep trying to connect if not fatal)
v3.19.10 or later is required to use this event
Emitted when there's a problem while logging into webchat.
chatLoggedOn
Emitted in response to a call to chatLogon() when we successfully logged on.
chatPersonaState
steamID- The SteamID of the user for whom we just got persona data, as aSteamIDobjectpersona- The user's persona data
Emitted when we receive new persona state data for a friend. Properties of persona are as follows:
steamID- ASteamIDobjectpersonaName- A string containing their (new) namepersonaState- A value from thePersonaStateenum (see below)personaStateFlags- An integer containing zero or more flags from thePersonaStateFlagenum (see below)avatarHash- The user's avatar hash (see below)inGame-trueif the user is currently in-game,falseif notinGameAppID- An integer containing the AppID of the app the user is currently playing/using, or 0 if not in-gameinGameName- The name of the app the user is currently playing/using, ornullif not in-game
SteamCommunity.PersonaState = {
"Offline": 0,
"Online": 1,
"Busy": 2,
"Away": 3,
"Snooze": 4,
"LookingToTrade": 5,
"LookingToPlay": 6,
"Max": 7
};
SteamCommunity.PersonaStateFlag = {
"HasRichPresence": 1,
"InJoinableGame": 2,
"OnlineUsingWeb": 256,
"OnlineUsingMobile": 512,
"OnlineUsingBigPicture": 1024
};
To get a URL from an avatar hash, use SteamCommunity.CSteamUser.getAvatarURL(hash[, size][, protocol]), where size is one of full, medium, icon (default icon) and protocol is one of http://, https://, // (default http://).
chatMessage
sender- The sender's SteamID, as aSteamIDobjecttext- The message text
Emitted when we receive a new chat message.
chatTyping
sender- The sender's SteamID, as aSteamIDobject
Emitted when we receive a notification that someone is typing a message.
chatLoggedOff
Emitted in response to a chatLogoff() call when we successfully logged off.