Description
Port this change from botbuilder-dotnet/master branch:
microsoft/botbuilder-dotnet#4046
This PR is to de-couple the Slack adapter from the dependency on a 3rd party Slack client. It also merges changes from some open PR's (#3760 and #3538).
-
Removed public dependency on 3rd party client (used in SlackClientWrapper). The 3rd party client is still used internally, but can now be swapped out if needed. We can document for developers that they can add the 3rd party clients to their project if they wish to interact with the Slack API.
-
The adapter was previously using an uber class containing all possible properties to deserialize incoming requests, which could have made debug / maintenance harder. Replaced this will individual classes for each key request / payload type (command / interaction / event).
-
Added additional model classes to the adapter to replaces classes from the 3rd party previously used (e.g. Slack specific Team and User objects).
-
Added JsonExtensionData properties to request types in order to support any additions to the Slack API - allowing developers to support some API changes immediately.
-
Changed type of Blocks property on the NewSlackMessage class to object. This allows a developer to use raw json or block objects from the available 3rd party libraries to attach blocks to their messages - this also allows developers to support new block types as they are added without an update to the adapter being required.
Changed projects
- Adapters