V3.14.2
Sep 12, 2017
- Adds a new transport that lets you define options on the request module (#425 thanks @bertrandom!)
V3.14.1
Sep 12, 2017
- Fixes an issue where newer versions of
request
were causing a linting error
- Adds irrecoverable error types for the RTM client
V3.14.0
Sep 12, 2017
V3.13.0
Sep 12, 2017
- Adds support for the
conversations.*
family of Web API methods. See https://api.slack.com/docs/conversations-api. - thanks @aoberoi
- Adds locale awareness options to various Web API methods. - thanks @aoberoi
- Fixes an argument encoding issue with calling
users.profile.set
(#360) - thanks @aoberoi
V3.12.0
Aug 24, 2017
- Adds MPIM data to the DataStore as Groups (#389) - thanks @aoberoi and @bradslavin
V3.11.0
Aug 11, 2017
- Added
chat.postEphemeral
Web API endpoint to the WebClient
(#384) - thanks @shanedewael
- Added
linkNames
option to IncomingWebhook
(#342) - thanks @mozamimy
- Ignored
package-lock.json
for use with npm 5 (#385) - thanks @aoberoi
V3.10.0
May 25, 2017
- RTM client can now be initialized to use
rtm.connect
instead of rtm.start
with option useConnect: true
(#344) - thanks @CharlieHess
- Adds the new Web API method:
rtm.connect
(#344) - thanks @CharlieHess
- Adds support for the
chat.unfurl
option userAuthRequired
(#336) - thanks @againer
- Adds the new Web API method:
im.replies
(#339) - thanks @moinism
- Adds support for presence subscriptions (#350) - thanks @CharlieHess
- Improve reliability of RTM reconnects (#349) - thanks @CharlieHess
- Fixes issue with RTM reconnect not using the same options as the initial connect (#347) - thanks @CharlieHess
- Fixes out of order messages in client’s request queue (#346) - thanks @chapmanc
- Fixes bug in
MemoryDataStore
when seaching for a user by username that does not exist in the team (#332) - thanks @frejos
- Fixes example code to work as described in the comments (#337) - thanks @lukeb-uk
3.9.0
Mar 15, 2017
- Adds the new Web API method:
chat.unfurl
. Check out
App Unfurls!
3.8.1
Dec 20, 2016
- Well, that didn’t go so well, now did it? This release fixes #303
3.8.0
Dec 20, 2016
- In the past, you had to contort your callbacks to any Web API endpoint, because not all errors were propogated through the error parameter. Well, good news: We are no longer forcing you to sit uncomfortably. Server errors that result in a
200 OK
+ {ok: false, error:"mumble_mumble"}
result are now passed through the error parameter so you can simplify your callback logic. If you want.
- Did you know that Slack will pass information on the scopes required to call a particular Web API endpoint? We do! And now you can get your hands on that very same information in your Web API callbacks too. Will help you debug and identify failed calls due to scoping issues.
- The Web API functionality has been expanded to include
users.profile.[get|set]
. Mind that you can only update your own profile
- Did you notice that there were errors in the documentation? There were (and almost certainly still are). Several concerned readers wrote in with comments and fixes, all of which have been addressed.
- Last but not least, we have added functionality to track basic usage of this SDK. All calls to the Web API and the RTM API are made with a user agent string that identifies the version of this SDK in use, as well as system information on node version and operating system. More better, you can add to this treasure trove of analytics—we’ve added a function in
helpers.js
that you can call from your code to let us know more about your framework or bot. In the future, we will be adding this same information to a wide range of SDKs that access the Slack Platform, and releasing usage data publicly so we can all see who is winning this popularity contest.
3.7.0
Dec 5, 2016
- Don’t know a user’s ID? Want to find a DM with that user anyway? Now you can retrieve a DM from the memory store by username. Awesome.
- API endpoints of the form
a.b.c
required a bit of rather tortured code to call. We have removed the torture requirements, and you can now call them as you might expect.
V3.6.1
Nov 10, 2016
- You can now use arbitrary images for your bot’s avatar with incoming webhooks. Because
your app wasn’t creepy enough before.
- Previously, we had no support for HTTPS proxies. This unfortunate situation has been
rectified, and now your bot can live behind the nastiest sorts of firewalls.
V3.6.0
Sep 6, 2016
- Adds support for Incoming Webhooks
- Fixes a bug around User IDs
V3.5.4
Jul 29, 2016
- Fixes a bug whereby events with fields not recognized cause a crash. Wow.
- Updated some logic around what user ids look like.
V3.5.3
Jul 25, 2016
- Fixes a bug in the package.json published by 3.5.2.
V3.5.2
Jul 25, 2016
- Updating the links in package.json so that you don’t need SSL credentials to pull down the github repo.
V3.5.1
Jul 6, 2016
- Updates lodash from ^3.10.1 to ^4.13.1. And means it.
- Minor tweaks to existing documentation and example code to make them consistent with each other. Because hobgoblins are friendly and love you.
V3.5.0
Jun 14, 2016
V3.4.0
May 31, 2016
V3.3.1
May 26, 2016
- Doesn’t crash the RTM client if a message with a
reply_to
ID with no response handler is received
V3.3.0
May 24, 2016
- Creates a memory data store by default if an undefined, but not false or null value is passed for
opts.dataStore
- Aliases the retry policies to be human readable
V3.2.1
May 24, 2016
- Updates the RTM client to emit an UNABLE_TO_RTM_START event when all reconnection attempts are exhausted, rather than throwing an error
- Suppresses some spurious log lines when tests are run
V3.2.0
May 23, 2016
- Updates the
_makeAPICall
method to make the optional API args param optional to pass in, so the third param to this function can be either an opts object or a cb. This is to allow us to add optional arguments to API methods without it being a breaking change.
- Fixes the
retry-after
header name and adds a numeric fallback if the retry-after value can’t be parsed, thanks @foiseworth!
- Adds new API methods to various facets
- Adds optional arguments to:
-
files.comments.add
: adds a channel
param, for the channel id of the location to associate with the new comment
-
chat.delete
: adds a boolean as_user
param, to support deleting a message as the authed user
V3.1.1
May 19, 2016
- Removes the DM facet
- Updates the aliasing approach for IM / DM to correctly alias DM to the IM Facet
V3.1.0
May 1, 2016
- Updates the
lib/clients/web/facets/index.js
to reference the new facets added in the 3.0.0 update, thanks @ekmartin
- Adds in a
reminders
client facet
- MemoryDataStore.getUserByEmail now looks at the correct part of the user object for the email, thanks @SimantovYousoufov
- Adds docs and examples for the data store and sending DMs, thanks @PaulAsjes!
V3.0.0
Apr 24, 2016
- Adds a number of new web client API facets:
-
BREAKING Changes the function signatures for some facet methods:
-
channels.list
: exclude_archived
moves to an opts
object, instead of being a separate argument
-
groups.list
: exclude_archived
moves to an opts
object, instead of being a separate argument
-
chat.delete
: The ts
and channel
arguments are re-ordered to be alphabetical
-
stars.list
: user
moves to an opts
object, instead of being a separate argument
-
users.list
: presence
moves to an opts
object, instead of being a separate argument
-
BREAKING Updates the function signature for
BaseAPIClient.prototype.makeAPICall
to take required API args and optional API args as separate params, from makeAPICall(endpoint, optData, optCb)
to makeAPICall(endpoint, apiArgs, apiOptArgs, optCb)
- New methods are added to various facets:
V2.2.1
Mar 12, 2016
- Adds an
im
alias for the dm
facet to the web client, to match the API endpoint naming
V2.2.0
Mar 12, 2016
- Adds promise support to the RTM client
send
and sendMessage
methods
- Fixes the way message response callbacks work, so that the success case is only called when the websocket receives a message with a
reply_to
matching the id of the dispatched message, instead of when the ws instance signals message send success
- Fixes the way
getAPICallArgs
works, to correctly pull data out of the opts
arg
V2.1.0
Mar 5, 2016
- Adds promises to the Slack clients. If no callback is passed to an API call, a promise will be created and returned instead.
- Logs a warning if an API response with a
warning
key is received
V2.0.6
Mar 1, 2016
- Fixes a crash introduce in
2.0.5
if you try and instantiate a WebClient
without passing in any options
V2.0.5
Mar 1, 2016
- Updates the way that API requests are throttled to:
- avoid a condition where the request queue callback could be called multiple times, causing a crash
- refactor the logic in
_callTransport
into multiple functions to make it easier to follow
- Updates dev dependencies:
- eslint
- nock
- eslint-config-airbnb
V2.3.0
Feb 28, 2016
- Caches messages on the RTM client, to improve handling in cases where message send fails
- Removes the handler for the websocket level
ping
handler (not the RTM API level ping handler)
- Refactors the logic for handling ws send responses to a single function
V2.0.4
Feb 28, 2016
- Passes through the logLevel param to the getLogger function
V2.0.3
Feb 28, 2016
- The RTM
AUTHENTICATED
event now also emits the rtm.start
payload
- Fixes the way that loggers are instantiated and used, so that the JSDoc for
opts.logger
is correct
V2.0.2
Feb 15, 2016
- Adds coveralls to the repo, to track code coverage and display a badge in the README
- Updates the disconnect function on the RTM client to support both an error message and a code or reason for the disconnect, e.g.
account_inactive
- Updates the message-handlers for
team_xxx
events to set the team back to the data-store once changes are made
V2.0.1
Feb 13, 2016
V2.0.0
Feb 13, 2016
Refactors the library to javascript, adds a lot of tests and restructures it to improve maintainability and extend functionality.
- Creates two separate clients:
- RTM; manages connection to Slack’s RTM API, including reconnects
- Web; provideas a callback interface to all of Slack’s Web API endpoints
- Moves the memory data store implementation off the clients and into its own class
- Uncouples the model objects from the clients; model functions to send messages to channels etc are now accessed via the web and RTM client
- Moves the transport layer (websockets and HTTP) to a pluggable model, so that complex transports (through request proxies etc) can be handled
- Adds test coverage on most core functionality in the library
V1.5.1
Dec 15, 2015
- Adds support for a request-proxy URL to use the client from behind a proxy
V1.5.0
Dec 1, 2015
- Updates the ws library from 0.4.3 to 0.8.1
- Reconnects when a
team_migration_started
event is received
- Supports finding users by email from the memory data store
- Fixes the getUnreadCount and getChannelsWithUnreads functions
- Emits error code and message when the ws closes
- Removes no-op call when a
ping
is received on the websocket
V1.4.0
Feb 25, 2015
- Added callbacks to all API calls (#20)
- Added support for star added/delete events (#27
- Fixed sample code (#18)
-
getChannelByName
now strips leading hash marks (#9)
- Dropped support for Node 0.8 (#25)
- Fix duplicate scripts entries in package.json (230c7f74)
V1.3.1
Feb 3, 2015
- Added ability to call chat.postMessage Web API method (#15)
- Added ability to update and delete messages (#14 and #17)
- Added sample code (7ee93a7b)
- Fixed
getChannelsWithUnreads
(#8)
- Fixed race condition when emitting
open
event (#19)
V1.2.2
Dec 16, 2014
- Compile coffeescript to JS before publishing to NPM (#6)
- Fixed typo in docs (#2)
V1.2.0
Dec 8, 2014