Repository: slack-go/slack
Pull request #841 (2020-11-06 10:57:18)

Implement an error-comparing method to errorsx String
##### PR preparation
**What**
- implemented an error-comparing method `Is()` to the struct `String` in the package `errorsx`
- create a test file for `errorsx` on the way to make a test for this func

**Why**
To make it possible to compare the custom error (`String` in `errorsx`) with all the struct implementing `error` interface by `errors.Is`.
That enables users of this package to check returned exported errors in their own applications by the latest Go standard error comparing way.

For example, the package user can handle the returned error like this


```example.go
if errors.Is(err, slack.ErrRTMDisconnected) {
  // do something
}
```

From Go1.13, `errors.Is` is provided as a function of a Go standard package. 
And, to make the custom error comparable by this func, we need to implement `Is` method to that.
 From [the package description of errors](https://golang.org/pkg/errors/#example_Is) 
>An error is considered to match a target if it is equal to that target or if it implements a method Is(error) bool such that Is(target) returns true.
>
>An error type might provide an Is method so it can be treated as equivalent to an existing error. For example, if MyError defines
>
>```
>func (m MyError) Is(target error) bool { return target == os.ErrExist }
>```
>then Is(MyError{}, os.ErrExist) returns true. See syscall.Errno.Is for an example in the standard library.


**Note**
Firstly I meant and tried to update result evaluation in some test files by this func, but it was too early considering the consistency for the old Go version. So, now I propose this func just for increasing the package user's options to check the returned error from this package.






Patch:
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index f51c60c..0000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,14 +0,0 @@
----
-name: Bug Report
-about: Create a report to help us improve
----
-
-### What happend
-
-### Expected behavior
-
-### Steps to reproduce
-
-### Versions
-- Go:
-- slack-go/slack:
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 352ca05..0000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-name: Feature Request
-about: Request an enhancement
----
-
-### Description
-### (Optional) Slack's documentation
diff --git a/.golangci.yml b/.golangci.yml
deleted file mode 100644
index c16f538..0000000
--- a/.golangci.yml
+++ /dev/null
@@ -1,14 +0,0 @@
-run:
-  timeout: 6m
-  issues-exit-code: 1
-linters:
-  disable-all: true
-  enable:
-    - goimports
-    - govet
-    - interfacer
-    - misspell
-    - structcheck
-    - unconvert
-issues:
-  new: true
diff --git a/.travis.yml b/.travis.yml
new file mode 100644
index 0000000..f2019d7
--- /dev/null
+++ b/.travis.yml
@@ -0,0 +1,41 @@
+language: go
+
+env:
+  - GO111MODULE=on
+
+install: true
+
+before_install:
+  - export PATH=$HOME/gopath/bin:$PATH
+  # install gometalinter
+  - curl -L https://git.io/vp6lP | sh
+
+script:
+  - PATH=$PWD/bin:$PATH gometalinter ./...
+  - go test -race -cover ./...
+
+matrix:
+  allow_failures:
+    - go: tip
+  include:
+  - go: "1.7.x"
+    script:  go test -v ./...
+  - go: "1.8.x"
+    script:  go test -v ./...
+  - go: "1.9.x"
+    script:  go test -v ./...
+  - go: "1.10.x"
+    script:  go test -v ./...
+  - go: "1.11.x"
+    script: go test -v -mod=vendor ./...
+  - go: "1.12.x"
+    script: go test -v -mod=vendor ./...
+  - go: "1.13.x"
+    script: go test -v -mod=vendor ./...
+  - go: "1.14.x"
+    script: go test -v -mod=vendor ./...
+  - go: "tip"
+    script: go test -v -mod=vendor ./...
+
+git:
+  depth: 10
diff --git a/attachments.go b/attachments.go
index b5b79f9..5f388e9 100644
--- a/attachments.go
+++ b/attachments.go
@@ -75,7 +75,7 @@ type Attachment struct {
 	Title     string `json:"title,omitempty"`
 	TitleLink string `json:"title_link,omitempty"`
 	Pretext   string `json:"pretext,omitempty"`
-	Text      string `json:"text,omitempty"`
+	Text      string `json:"text"` // Required
 
 	ImageURL string `json:"image_url,omitempty"`
 	ThumbURL string `json:"thumb_url,omitempty"`
diff --git a/block_action.go b/block_action.go
index c15e4a3..fe46a95 100644
--- a/block_action.go
+++ b/block_action.go
@@ -6,7 +6,7 @@ package slack
 type ActionBlock struct {
 	Type     MessageBlockType `json:"type"`
 	BlockID  string           `json:"block_id,omitempty"`
-	Elements *BlockElements   `json:"elements"`
+	Elements BlockElements    `json:"elements"`
 }
 
 // BlockType returns the type of the block
@@ -19,7 +19,7 @@ func NewActionBlock(blockID string, elements ...BlockElement) *ActionBlock {
 	return &ActionBlock{
 		Type:    MBTAction,
 		BlockID: blockID,
-		Elements: &BlockElements{
+		Elements: BlockElements{
 			ElementSet: elements,
 		},
 	}
diff --git a/channels.go b/channels.go
index c05521d..a90d238 100644
--- a/channels.go
+++ b/channels.go
@@ -19,12 +19,6 @@ type channelResponseFull struct {
 }
 
 // Channel contains information about the channel
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 type Channel struct {
 	GroupConversation
 	IsChannel bool   `json:"is_channel"`
@@ -44,21 +38,9 @@ func (api *Client) channelRequest(ctx context.Context, path string, values url.V
 }
 
 // GetChannelsOption option provided when getting channels.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 type GetChannelsOption func(*ChannelPagination) error
 
 // GetChannelsOptionExcludeMembers excludes the members collection from each channel.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func GetChannelsOptionExcludeMembers() GetChannelsOption {
 	return func(p *ChannelPagination) error {
 		p.excludeMembers = true
@@ -67,12 +49,6 @@ func GetChannelsOptionExcludeMembers() GetChannelsOption {
 }
 
 // GetChannelsOptionExcludeArchived excludes archived channels from results.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func GetChannelsOptionExcludeArchived() GetChannelsOption {
 	return func(p *ChannelPagination) error {
 		p.excludeArchived = true
@@ -82,24 +58,12 @@ func GetChannelsOptionExcludeArchived() GetChannelsOption {
 
 // ArchiveChannel archives the given channel
 // see https://api.slack.com/methods/channels.archive
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) ArchiveChannel(channelID string) error {
 	return api.ArchiveChannelContext(context.Background(), channelID)
 }
 
 // ArchiveChannelContext archives the given channel with a custom context
 // see https://api.slack.com/methods/channels.archive
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) ArchiveChannelContext(ctx context.Context, channelID string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -112,24 +76,12 @@ func (api *Client) ArchiveChannelContext(ctx context.Context, channelID string)
 
 // UnarchiveChannel unarchives the given channel
 // see https://api.slack.com/methods/channels.unarchive
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) UnarchiveChannel(channelID string) error {
 	return api.UnarchiveChannelContext(context.Background(), channelID)
 }
 
 // UnarchiveChannelContext unarchives the given channel with a custom context
 // see https://api.slack.com/methods/channels.unarchive
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) UnarchiveChannelContext(ctx context.Context, channelID string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -142,24 +94,12 @@ func (api *Client) UnarchiveChannelContext(ctx context.Context, channelID string
 
 // CreateChannel creates a channel with the given name and returns a *Channel
 // see https://api.slack.com/methods/channels.create
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateChannel(channelName string) (*Channel, error) {
 	return api.CreateChannelContext(context.Background(), channelName)
 }
 
 // CreateChannelContext creates a channel with the given name and returns a *Channel with a custom context
 // see https://api.slack.com/methods/channels.create
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateChannelContext(ctx context.Context, channelName string) (*Channel, error) {
 	values := url.Values{
 		"token": {api.token},
@@ -175,24 +115,12 @@ func (api *Client) CreateChannelContext(ctx context.Context, channelName string)
 
 // GetChannelHistory retrieves the channel history
 // see https://api.slack.com/methods/channels.history
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelHistory(channelID string, params HistoryParameters) (*History, error) {
 	return api.GetChannelHistoryContext(context.Background(), channelID, params)
 }
 
 // GetChannelHistoryContext retrieves the channel history with a custom context
 // see https://api.slack.com/methods/channels.history
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelHistoryContext(ctx context.Context, channelID string, params HistoryParameters) (*History, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -232,24 +160,12 @@ func (api *Client) GetChannelHistoryContext(ctx context.Context, channelID strin
 
 // GetChannelInfo retrieves the given channel
 // see https://api.slack.com/methods/channels.info
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelInfo(channelID string) (*Channel, error) {
 	return api.GetChannelInfoContext(context.Background(), channelID)
 }
 
 // GetChannelInfoContext retrieves the given channel with a custom context
 // see https://api.slack.com/methods/channels.info
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelInfoContext(ctx context.Context, channelID string) (*Channel, error) {
 	values := url.Values{
 		"token":          {api.token},
@@ -266,24 +182,12 @@ func (api *Client) GetChannelInfoContext(ctx context.Context, channelID string)
 
 // InviteUserToChannel invites a user to a given channel and returns a *Channel
 // see https://api.slack.com/methods/channels.invite
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) InviteUserToChannel(channelID, user string) (*Channel, error) {
 	return api.InviteUserToChannelContext(context.Background(), channelID, user)
 }
 
 // InviteUserToChannelContext invites a user to a given channel and returns a *Channel with a custom context
 // see https://api.slack.com/methods/channels.invite
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) InviteUserToChannelContext(ctx context.Context, channelID, user string) (*Channel, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -300,24 +204,12 @@ func (api *Client) InviteUserToChannelContext(ctx context.Context, channelID, us
 
 // JoinChannel joins the currently authenticated user to a channel
 // see https://api.slack.com/methods/channels.join
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) JoinChannel(channelName string) (*Channel, error) {
 	return api.JoinChannelContext(context.Background(), channelName)
 }
 
 // JoinChannelContext joins the currently authenticated user to a channel with a custom context
 // see https://api.slack.com/methods/channels.join
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) JoinChannelContext(ctx context.Context, channelName string) (*Channel, error) {
 	values := url.Values{
 		"token": {api.token},
@@ -333,24 +225,12 @@ func (api *Client) JoinChannelContext(ctx context.Context, channelName string) (
 
 // LeaveChannel makes the authenticated user leave the given channel
 // see https://api.slack.com/methods/channels.leave
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) LeaveChannel(channelID string) (bool, error) {
 	return api.LeaveChannelContext(context.Background(), channelID)
 }
 
 // LeaveChannelContext makes the authenticated user leave the given channel with a custom context
 // see https://api.slack.com/methods/channels.leave
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) LeaveChannelContext(ctx context.Context, channelID string) (bool, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -367,24 +247,12 @@ func (api *Client) LeaveChannelContext(ctx context.Context, channelID string) (b
 
 // KickUserFromChannel kicks a user from a given channel
 // see https://api.slack.com/methods/channels.kick
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) KickUserFromChannel(channelID, user string) error {
 	return api.KickUserFromChannelContext(context.Background(), channelID, user)
 }
 
 // KickUserFromChannelContext kicks a user from a given channel with a custom context
 // see https://api.slack.com/methods/channels.kick
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) KickUserFromChannelContext(ctx context.Context, channelID, user string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -410,12 +278,6 @@ func newChannelPagination(c *Client, options ...GetChannelsOption) (cp ChannelPa
 }
 
 // ChannelPagination allows for paginating over the channels
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 type ChannelPagination struct {
 	Channels        []Channel
 	limit           int
@@ -426,23 +288,11 @@ type ChannelPagination struct {
 }
 
 // Done checks if the pagination has completed
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (ChannelPagination) Done(err error) bool {
 	return err == errPaginationComplete
 }
 
 // Failure checks if pagination failed.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (t ChannelPagination) Failure(err error) error {
 	if t.Done(err) {
 		return nil
@@ -451,11 +301,6 @@ func (t ChannelPagination) Failure(err error) error {
 	return err
 }
 
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (t ChannelPagination) Next(ctx context.Context) (_ ChannelPagination, err error) {
 	var (
 		resp *channelResponseFull
@@ -487,36 +332,18 @@ func (t ChannelPagination) Next(ctx context.Context) (_ ChannelPagination, err e
 }
 
 // GetChannelsPaginated fetches channels in a paginated fashion, see GetChannelsContext for usage.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelsPaginated(options ...GetChannelsOption) ChannelPagination {
 	return newChannelPagination(api, options...)
 }
 
 // GetChannels retrieves all the channels
 // see https://api.slack.com/methods/channels.list
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannels(excludeArchived bool, options ...GetChannelsOption) ([]Channel, error) {
 	return api.GetChannelsContext(context.Background(), excludeArchived, options...)
 }
 
 // GetChannelsContext retrieves all the channels with a custom context
 // see https://api.slack.com/methods/channels.list
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelsContext(ctx context.Context, excludeArchived bool, options ...GetChannelsOption) (results []Channel, err error) {
 	if excludeArchived {
 		options = append(options, GetChannelsOptionExcludeArchived())
@@ -546,12 +373,6 @@ func (api *Client) GetChannelsContext(ctx context.Context, excludeArchived bool,
 // (just one per channel). This is useful for when reading scroll-back history, or following a busy live channel. A
 // timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout.
 // see https://api.slack.com/methods/channels.mark
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelReadMark(channelID, ts string) error {
 	return api.SetChannelReadMarkContext(context.Background(), channelID, ts)
 }
@@ -559,12 +380,6 @@ func (api *Client) SetChannelReadMark(channelID, ts string) error {
 // SetChannelReadMarkContext sets the read mark of a given channel to a specific point with a custom context
 // For more details see SetChannelReadMark documentation
 // see https://api.slack.com/methods/channels.mark
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelReadMarkContext(ctx context.Context, channelID, ts string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -578,24 +393,12 @@ func (api *Client) SetChannelReadMarkContext(ctx context.Context, channelID, ts
 
 // RenameChannel renames a given channel
 // see https://api.slack.com/methods/channels.rename
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) RenameChannel(channelID, name string) (*Channel, error) {
 	return api.RenameChannelContext(context.Background(), channelID, name)
 }
 
 // RenameChannelContext renames a given channel with a custom context
 // see https://api.slack.com/methods/channels.rename
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) RenameChannelContext(ctx context.Context, channelID, name string) (*Channel, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -614,24 +417,12 @@ func (api *Client) RenameChannelContext(ctx context.Context, channelID, name str
 
 // SetChannelPurpose sets the channel purpose and returns the purpose that was successfully set
 // see https://api.slack.com/methods/channels.setPurpose
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelPurpose(channelID, purpose string) (string, error) {
 	return api.SetChannelPurposeContext(context.Background(), channelID, purpose)
 }
 
 // SetChannelPurposeContext sets the channel purpose and returns the purpose that was successfully set with a custom context
 // see https://api.slack.com/methods/channels.setPurpose
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelPurposeContext(ctx context.Context, channelID, purpose string) (string, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -648,24 +439,12 @@ func (api *Client) SetChannelPurposeContext(ctx context.Context, channelID, purp
 
 // SetChannelTopic sets the channel topic and returns the topic that was successfully set
 // see https://api.slack.com/methods/channels.setTopic
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelTopic(channelID, topic string) (string, error) {
 	return api.SetChannelTopicContext(context.Background(), channelID, topic)
 }
 
 // SetChannelTopicContext sets the channel topic and returns the topic that was successfully set with a custom context
 // see https://api.slack.com/methods/channels.setTopic
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetChannelTopicContext(ctx context.Context, channelID, topic string) (string, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -682,24 +461,12 @@ func (api *Client) SetChannelTopicContext(ctx context.Context, channelID, topic
 
 // GetChannelReplies gets an entire thread (a message plus all the messages in reply to it).
 // see https://api.slack.com/methods/channels.replies
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelReplies(channelID, thread_ts string) ([]Message, error) {
 	return api.GetChannelRepliesContext(context.Background(), channelID, thread_ts)
 }
 
 // GetChannelRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context
 // see https://api.slack.com/methods/channels.replies
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetChannelRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error) {
 	values := url.Values{
 		"token":     {api.token},
diff --git a/examples/eventsapi/events.go b/examples/eventsapi/events.go
index 25049ad..9bf1850 100644
--- a/examples/eventsapi/events.go
+++ b/examples/eventsapi/events.go
@@ -1,11 +1,10 @@
 package main
 
 import (
+	"bytes"
 	"encoding/json"
 	"fmt"
-	"io/ioutil"
 	"net/http"
-	"os"
 
 	"github.com/slack-go/slack"
 	"github.com/slack-go/slack/slackevents"
@@ -15,29 +14,12 @@ import (
 var api = slack.New("TOKEN")
 
 func main() {
-	signingSecret := os.Getenv("SLACK_SIGNING_SECRET")
-
 	http.HandleFunc("/events-endpoint", func(w http.ResponseWriter, r *http.Request) {
-		body, err := ioutil.ReadAll(r.Body)
-		if err != nil {
-			w.WriteHeader(http.StatusBadRequest)
-			return
-		}
-		sv, err := slack.NewSecretsVerifier(r.Header, signingSecret)
-		if err != nil {
-			w.WriteHeader(http.StatusBadRequest)
-			return
-		}
-		if _, err := sv.Write(body); err != nil {
-			w.WriteHeader(http.StatusInternalServerError)
-			return
-		}
-		if err := sv.Ensure(); err != nil {
-			w.WriteHeader(http.StatusUnauthorized)
-			return
-		}
-		eventsAPIEvent, err := slackevents.ParseEvent(json.RawMessage(body), slackevents.OptionNoVerifyToken())
-		if err != nil {
+		buf := new(bytes.Buffer)
+		buf.ReadFrom(r.Body)
+		body := buf.String()
+		eventsAPIEvent, e := slackevents.ParseEvent(json.RawMessage(body), slackevents.OptionVerifyToken(&slackevents.TokenComparator{VerificationToken: "VERIFICATION_TOKEN"}))
+		if e != nil {
 			w.WriteHeader(http.StatusInternalServerError)
 			return
 		}
diff --git a/files.go b/files.go
index 713038f..3a7363d 100644
--- a/files.go
+++ b/files.go
@@ -11,14 +11,13 @@ import (
 
 const (
 	// Add here the defaults in the siten
-	DEFAULT_FILES_USER        = ""
-	DEFAULT_FILES_CHANNEL     = ""
-	DEFAULT_FILES_TS_FROM     = 0
-	DEFAULT_FILES_TS_TO       = -1
-	DEFAULT_FILES_TYPES       = "all"
-	DEFAULT_FILES_COUNT       = 100
-	DEFAULT_FILES_PAGE        = 1
-	DEFAULT_FILES_SHOW_HIDDEN = false
+	DEFAULT_FILES_USER    = ""
+	DEFAULT_FILES_CHANNEL = ""
+	DEFAULT_FILES_TS_FROM = 0
+	DEFAULT_FILES_TS_TO   = -1
+	DEFAULT_FILES_TYPES   = "all"
+	DEFAULT_FILES_COUNT   = 100
+	DEFAULT_FILES_PAGE    = 1
 )
 
 // File contains all the information for a file
@@ -133,7 +132,6 @@ type GetFilesParameters struct {
 	Types         string
 	Count         int
 	Page          int
-	ShowHidden    bool
 }
 
 // ListFilesParameters contains all the parameters necessary (including the optional ones) for a ListFiles() request
@@ -165,7 +163,6 @@ func NewGetFilesParameters() GetFilesParameters {
 		Types:         DEFAULT_FILES_TYPES,
 		Count:         DEFAULT_FILES_COUNT,
 		Page:          DEFAULT_FILES_PAGE,
-		ShowHidden:    DEFAULT_FILES_SHOW_HIDDEN,
 	}
 }
 
@@ -270,9 +267,6 @@ func (api *Client) GetFilesContext(ctx context.Context, params GetFilesParameter
 	if params.Page != DEFAULT_FILES_PAGE {
 		values.Add("page", strconv.Itoa(params.Page))
 	}
-	if params.ShowHidden != DEFAULT_FILES_SHOW_HIDDEN {
-		values.Add("show_files_hidden_by_limit", strconv.FormatBool(params.ShowHidden))
-	}
 
 	response, err := api.fileRequest(ctx, "files.list", values)
 	if err != nil {
diff --git a/groups.go b/groups.go
index 4c5793d..6ea1b13 100644
--- a/groups.go
+++ b/groups.go
@@ -7,12 +7,6 @@ import (
 )
 
 // Group contains all the information for a group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 type Group struct {
 	GroupConversation
 	IsGroup bool `json:"is_group"`
@@ -44,23 +38,11 @@ func (api *Client) groupRequest(ctx context.Context, path string, values url.Val
 }
 
 // ArchiveGroup archives a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) ArchiveGroup(group string) error {
 	return api.ArchiveGroupContext(context.Background(), group)
 }
 
 // ArchiveGroupContext archives a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) ArchiveGroupContext(ctx context.Context, group string) error {
 	values := url.Values{
 		"token":   {api.token},
@@ -72,23 +54,11 @@ func (api *Client) ArchiveGroupContext(ctx context.Context, group string) error
 }
 
 // UnarchiveGroup unarchives a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) UnarchiveGroup(group string) error {
 	return api.UnarchiveGroupContext(context.Background(), group)
 }
 
 // UnarchiveGroupContext unarchives a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) UnarchiveGroupContext(ctx context.Context, group string) error {
 	values := url.Values{
 		"token":   {api.token},
@@ -100,23 +70,11 @@ func (api *Client) UnarchiveGroupContext(ctx context.Context, group string) erro
 }
 
 // CreateGroup creates a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateGroup(group string) (*Group, error) {
 	return api.CreateGroupContext(context.Background(), group)
 }
 
 // CreateGroupContext creates a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateGroupContext(ctx context.Context, group string) (*Group, error) {
 	values := url.Values{
 		"token": {api.token},
@@ -136,24 +94,12 @@ func (api *Client) CreateGroupContext(ctx context.Context, group string) (*Group
 //   2. Archives the existing group.
 //   3. Creates a new group with the name of the existing group.
 //   4. Adds all members of the existing group to the new group.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateChildGroup(group string) (*Group, error) {
 	return api.CreateChildGroupContext(context.Background(), group)
 }
 
 // CreateChildGroupContext creates a new private group archiving the old one with a custom context
 // For more information see CreateChildGroup
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CreateChildGroupContext(ctx context.Context, group string) (*Group, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -168,23 +114,11 @@ func (api *Client) CreateChildGroupContext(ctx context.Context, group string) (*
 }
 
 // GetGroupHistory fetches all the history for a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupHistory(group string, params HistoryParameters) (*History, error) {
 	return api.GetGroupHistoryContext(context.Background(), group, params)
 }
 
 // GetGroupHistoryContext fetches all the history for a private group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupHistoryContext(ctx context.Context, group string, params HistoryParameters) (*History, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -222,23 +156,11 @@ func (api *Client) GetGroupHistoryContext(ctx context.Context, group string, par
 }
 
 // InviteUserToGroup invites a specific user to a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) InviteUserToGroup(group, user string) (*Group, bool, error) {
 	return api.InviteUserToGroupContext(context.Background(), group, user)
 }
 
 // InviteUserToGroupContext invites a specific user to a private group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) InviteUserToGroupContext(ctx context.Context, group, user string) (*Group, bool, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -254,23 +176,11 @@ func (api *Client) InviteUserToGroupContext(ctx context.Context, group, user str
 }
 
 // LeaveGroup makes authenticated user leave the group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) LeaveGroup(group string) error {
 	return api.LeaveGroupContext(context.Background(), group)
 }
 
 // LeaveGroupContext makes authenticated user leave the group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) LeaveGroupContext(ctx context.Context, group string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -282,23 +192,11 @@ func (api *Client) LeaveGroupContext(ctx context.Context, group string) (err err
 }
 
 // KickUserFromGroup kicks a user from a group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) KickUserFromGroup(group, user string) error {
 	return api.KickUserFromGroupContext(context.Background(), group, user)
 }
 
 // KickUserFromGroupContext kicks a user from a group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) KickUserFromGroupContext(ctx context.Context, group, user string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -311,23 +209,11 @@ func (api *Client) KickUserFromGroupContext(ctx context.Context, group, user str
 }
 
 // GetGroups retrieves all groups
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroups(excludeArchived bool) ([]Group, error) {
 	return api.GetGroupsContext(context.Background(), excludeArchived)
 }
 
 // GetGroupsContext retrieves all groups with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupsContext(ctx context.Context, excludeArchived bool) ([]Group, error) {
 	values := url.Values{
 		"token": {api.token},
@@ -344,23 +230,11 @@ func (api *Client) GetGroupsContext(ctx context.Context, excludeArchived bool) (
 }
 
 // GetGroupInfo retrieves the given group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupInfo(group string) (*Group, error) {
 	return api.GetGroupInfoContext(context.Background(), group)
 }
 
 // GetGroupInfoContext retrieves the given group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupInfoContext(ctx context.Context, group string) (*Group, error) {
 	values := url.Values{
 		"token":          {api.token},
@@ -380,24 +254,12 @@ func (api *Client) GetGroupInfoContext(ctx context.Context, group string) (*Grou
 // timer before making the call. In this way, any further updates needed during the timeout will not generate extra
 // calls (just one per channel). This is useful for when reading scroll-back history, or following a busy live
 // channel. A timeout of 5 seconds is a good starting point. Be sure to flush these calls on shutdown/logout.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupReadMark(group, ts string) error {
 	return api.SetGroupReadMarkContext(context.Background(), group, ts)
 }
 
 // SetGroupReadMarkContext sets the read mark on a private group with a custom context
 // For more details see SetGroupReadMark
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupReadMarkContext(ctx context.Context, group, ts string) (err error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -410,23 +272,11 @@ func (api *Client) SetGroupReadMarkContext(ctx context.Context, group, ts string
 }
 
 // OpenGroup opens a private group
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) OpenGroup(group string) (bool, bool, error) {
 	return api.OpenGroupContext(context.Background(), group)
 }
 
 // OpenGroupContext opens a private group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) OpenGroupContext(ctx context.Context, group string) (bool, bool, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -443,23 +293,11 @@ func (api *Client) OpenGroupContext(ctx context.Context, group string) (bool, bo
 // RenameGroup renames a group
 // XXX: They return a channel, not a group. What is this crap? :(
 // Inconsistent api it seems.
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) RenameGroup(group, name string) (*Channel, error) {
 	return api.RenameGroupContext(context.Background(), group, name)
 }
 
 // RenameGroupContext renames a group with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) RenameGroupContext(ctx context.Context, group, name string) (*Channel, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -477,23 +315,11 @@ func (api *Client) RenameGroupContext(ctx context.Context, group, name string) (
 }
 
 // SetGroupPurpose sets the group purpose
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupPurpose(group, purpose string) (string, error) {
 	return api.SetGroupPurposeContext(context.Background(), group, purpose)
 }
 
 // SetGroupPurposeContext sets the group purpose with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupPurposeContext(ctx context.Context, group, purpose string) (string, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -509,23 +335,11 @@ func (api *Client) SetGroupPurposeContext(ctx context.Context, group, purpose st
 }
 
 // SetGroupTopic sets the group topic
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupTopic(group, topic string) (string, error) {
 	return api.SetGroupTopicContext(context.Background(), group, topic)
 }
 
 // SetGroupTopicContext sets the group topic with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) SetGroupTopicContext(ctx context.Context, group, topic string) (string, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -542,24 +356,12 @@ func (api *Client) SetGroupTopicContext(ctx context.Context, group, topic string
 
 // GetGroupReplies gets an entire thread (a message plus all the messages in reply to it).
 // see https://api.slack.com/methods/groups.replies
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupReplies(channelID, thread_ts string) ([]Message, error) {
 	return api.GetGroupRepliesContext(context.Background(), channelID, thread_ts)
 }
 
 // GetGroupRepliesContext gets an entire thread (a message plus all the messages in reply to it) with a custom context
 // see https://api.slack.com/methods/groups.replies
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetGroupRepliesContext(ctx context.Context, channelID, thread_ts string) ([]Message, error) {
 	values := url.Values{
 		"token":     {api.token},
diff --git a/im.go b/im.go
index a884b29..ee784fe 100644
--- a/im.go
+++ b/im.go
@@ -21,12 +21,6 @@ type imResponseFull struct {
 }
 
 // IM contains information related to the Direct Message channel
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 type IM struct {
 	Conversation
 	IsUserDeleted bool `json:"is_user_deleted"`
@@ -43,23 +37,11 @@ func (api *Client) imRequest(ctx context.Context, path string, values url.Values
 }
 
 // CloseIMChannel closes the direct message channel
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CloseIMChannel(channel string) (bool, bool, error) {
 	return api.CloseIMChannelContext(context.Background(), channel)
 }
 
 // CloseIMChannelContext closes the direct message channel with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) CloseIMChannelContext(ctx context.Context, channel string) (bool, bool, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -75,24 +57,12 @@ func (api *Client) CloseIMChannelContext(ctx context.Context, channel string) (b
 
 // OpenIMChannel opens a direct message channel to the user provided as argument
 // Returns some status and the channel ID
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) OpenIMChannel(user string) (bool, bool, string, error) {
 	return api.OpenIMChannelContext(context.Background(), user)
 }
 
 // OpenIMChannelContext opens a direct message channel to the user provided as argument with a custom context
 // Returns some status and the channel ID
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) OpenIMChannelContext(ctx context.Context, user string) (bool, bool, string, error) {
 	values := url.Values{
 		"token": {api.token},
@@ -107,23 +77,11 @@ func (api *Client) OpenIMChannelContext(ctx context.Context, user string) (bool,
 }
 
 // MarkIMChannel sets the read mark of a direct message channel to a specific point
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) MarkIMChannel(channel, ts string) (err error) {
 	return api.MarkIMChannelContext(context.Background(), channel, ts)
 }
 
 // MarkIMChannelContext sets the read mark of a direct message channel to a specific point with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) MarkIMChannelContext(ctx context.Context, channel, ts string) error {
 	values := url.Values{
 		"token":   {api.token},
@@ -136,23 +94,11 @@ func (api *Client) MarkIMChannelContext(ctx context.Context, channel, ts string)
 }
 
 // GetIMHistory retrieves the direct message channel history
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetIMHistory(channel string, params HistoryParameters) (*History, error) {
 	return api.GetIMHistoryContext(context.Background(), channel, params)
 }
 
 // GetIMHistoryContext retrieves the direct message channel history with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetIMHistoryContext(ctx context.Context, channel string, params HistoryParameters) (*History, error) {
 	values := url.Values{
 		"token":   {api.token},
@@ -190,23 +136,11 @@ func (api *Client) GetIMHistoryContext(ctx context.Context, channel string, para
 }
 
 // GetIMChannels returns the list of direct message channels
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetIMChannels() ([]IM, error) {
 	return api.GetIMChannelsContext(context.Background())
 }
 
 // GetIMChannelsContext returns the list of direct message channels with a custom context
-//
-// Deprecated: channels.*, groups.* im.* and mpim.* methods will be deprecated in the next version.
-// In Slack, these API are no longer available for  newly Apps created after June 10th, 2020.
-// Also, existing applications will not be able to use these APIs after February 24th, 2021.
-//
-// See also: https://api.slack.com/changelog/2020-01-deprecating-antecedents-to-the-conversations-api
 func (api *Client) GetIMChannelsContext(ctx context.Context) ([]IM, error) {
 	values := url.Values{
 		"token": {api.token},
diff --git a/internal/errorsx/errorsx.go b/internal/errorsx/errorsx.go
index cb85057..0182ec6 100644
--- a/internal/errorsx/errorsx.go
+++ b/internal/errorsx/errorsx.go
@@ -6,3 +6,12 @@ type String string
 func (t String) Error() string {
 	return string(t)
 }
+
+// Is reports whether String matches with the target error
+func (t String) Is(target error) bool {
+	if target == nil {
+		return false
+	}
+
+	return t.Error() == target.Error()
+}
diff --git a/reminders.go b/reminders.go
index f312af3..de1170a 100644
--- a/reminders.go
+++ b/reminders.go
@@ -3,16 +3,17 @@ package slack
 import (
 	"context"
 	"net/url"
+	"time"
 )
 
 type Reminder struct {
-	ID         string `json:"id"`
-	Creator    string `json:"creator"`
-	User       string `json:"user"`
-	Text       string `json:"text"`
-	Recurring  bool   `json:"recurring"`
-	Time       int    `json:"time"`
-	CompleteTS int    `json:"complete_ts"`
+	ID         string    `json:"id"`
+	Creator    string    `json:"creator"`
+	User       string    `json:"user"`
+	Text       string    `json:"text"`
+	Recurring  bool      `json:"recurring"`
+	Time       time.Time `json:"time"`
+	CompleteTS int       `json:"complete_ts"`
 }
 
 type reminderResp struct {
diff --git a/users.go b/users.go
index eee62d3..cdef424 100644
--- a/users.go
+++ b/users.go
@@ -557,7 +557,7 @@ func (api *Client) SetUserCustomStatus(statusText, statusEmoji string, statusExp
 //
 // For more information see SetUserCustomStatus
 func (api *Client) SetUserCustomStatusContext(ctx context.Context, statusText, statusEmoji string, statusExpiration int64) error {
-	return api.SetUserCustomStatusContextWithUser(ctx, "", statusText, statusEmoji, statusExpiration)
+	return api.SetUserCustomStatusContextWithUser(context.Background(), "", statusText, statusEmoji, statusExpiration)
 }
 
 // SetUserCustomStatusWithUser will set a custom status and emoji for the provided user.


Test patch:
diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml
deleted file mode 100644
index f82ae69..0000000
--- a/.github/workflows/test.yml
+++ /dev/null
@@ -1,37 +0,0 @@
-name: Test
-
-on:
-  push:
-    branches:
-      - master
-  pull_request:
-
-jobs:
-  ci:
-    runs-on: ubuntu-latest
-    name: lint
-    steps:
-      - uses: actions/checkout@v2
-      - name: golangci-lint
-        uses: golangci/golangci-lint-action@v2
-        with:
-          version: v1.32
-  test:
-    runs-on: ubuntu-latest
-    strategy:
-      matrix:
-        go:
-          - '1.12'
-          - '1.13'
-          - '1.14'
-          - '1.15'
-    name: test go-${{ matrix.go }}
-    steps:
-      - uses: actions/checkout@v2
-      - uses: actions/setup-go@v2
-        with:
-          go-version: ${{ matrix.go }}
-      - name: run test
-        run: go test -v -race ./...
-        env:
-          GO111MODULE: on
diff --git a/attachments_test.go b/attachments_test.go
index 4b951f1..24e2254 100644
--- a/attachments_test.go
+++ b/attachments_test.go
@@ -12,6 +12,7 @@ func TestAttachment_UnmarshalMarshalJSON_WithBlocks(t *testing.T) {
 
 	originalAttachmentJson := `{
     "id": 1,
+    "text":"",
     "blocks": [
       {
         "type": "section",
diff --git a/block_header_test.go b/block_header_test.go
index d8ed332..f1cfb5d 100644
--- a/block_header_test.go
+++ b/block_header_test.go
@@ -12,7 +12,7 @@ func TestNewHeaderBlock(t *testing.T) {
 
 	headerBlock := NewHeaderBlock(textInfo, HeaderBlockOptionBlockID("test_block"))
 	assert.Equal(t, string(headerBlock.Type), "header")
-	assert.Equal(t, headerBlock.BlockID, "test_block")
+	assert.Equal(t, string(headerBlock.BlockID), "test_block")
 	assert.Equal(t, headerBlock.Text.Type, "plain_text")
 	assert.Contains(t, headerBlock.Text.Text, "quite the header")
 }
diff --git a/block_section_test.go b/block_section_test.go
index 6832967..3f9f452 100644
--- a/block_section_test.go
+++ b/block_section_test.go
@@ -12,7 +12,7 @@ func TestNewSectionBlock(t *testing.T) {
 
 	sectionBlock := NewSectionBlock(textInfo, nil, nil, SectionBlockOptionBlockID("test_block"))
 	assert.Equal(t, string(sectionBlock.Type), "section")
-	assert.Equal(t, sectionBlock.BlockID, "test_block")
+	assert.Equal(t, string(sectionBlock.BlockID), "test_block")
 	assert.Equal(t, len(sectionBlock.Fields), 0)
 	assert.Nil(t, sectionBlock.Accessory)
 	assert.Equal(t, sectionBlock.Text.Type, "mrkdwn")
diff --git a/bots_test.go b/bots_test.go
index ce7f668..cdcbb5e 100644
--- a/bots_test.go
+++ b/bots_test.go
@@ -41,9 +41,6 @@ func TestGetBotInfo(t *testing.T) {
 	if bot.Name != "github" {
 		t.Fatal("Incorrect Name")
 	}
-	if bot.Deleted {
-		t.Fatal("Incorrect Deleted flag")
-	}
 	if bot.AppID != "A161CLERW" {
 		t.Fatal("Incorrect App ID")
 	}
diff --git a/chat_test.go b/chat_test.go
index 450cae7..a038728 100644
--- a/chat_test.go
+++ b/chat_test.go
@@ -101,7 +101,7 @@ func TestPostMessage(t *testing.T) {
 					}),
 			},
 			expected: url.Values{
-				"attachments": []string{`[{"blocks":` + blockStr + `}]`},
+				"attachments": []string{`[{"text":"","blocks":` + blockStr + `}]`},
 				"channel":     []string{"CXXX"},
 				"token":       []string{"testing-token"},
 			},
diff --git a/internal/errorsx/errrorsx_test.go b/internal/errorsx/errrorsx_test.go
new file mode 100644
index 0000000..32aba08
--- /dev/null
+++ b/internal/errorsx/errrorsx_test.go
@@ -0,0 +1,18 @@
+package errorsx
+
+import (
+	"errors"
+	"testing"
+)
+
+func TestIs(t *testing.T) {
+	test := func(receiver String, target error, expected bool) {
+		if result := receiver.Is(target); result != expected {
+			t.Errorf(`expected "%s Is %s" should be %t , got: %t`, receiver, target, expected, result)
+		}
+	}
+
+	test(String("test error"), errors.New("test error"), true)
+	test(String("test error"), errors.New("different error"), false)
+	test(String("test error"), nil, false)
+}
diff --git a/reminders_test.go b/reminders_test.go
index 919ba5b..bed7589 100644
--- a/reminders_test.go
+++ b/reminders_test.go
@@ -8,6 +8,7 @@ import (
 
 type remindersHandler struct {
 	gotParams map[string]string
+	response  string
 }
 
 func newRemindersHandler() *remindersHandler {
diff --git a/slacktest/handlers.go b/slacktest/handlers.go
index 85eec58..ebf10c0 100644
--- a/slacktest/handlers.go
+++ b/slacktest/handlers.go
@@ -62,7 +62,7 @@ func (sts *Server) conversationsInfoHandler(w http.ResponseWriter, r *http.Reque
 	ch := values.Get("channel")
 
 	response := GroupConversationResponse{
-		Ok: true,
+		Ok:      true,
 		Channel: slack.GroupConversation{
 			Conversation: slack.Conversation{
 				ID: ch,
@@ -72,8 +72,8 @@ func (sts *Server) conversationsInfoHandler(w http.ResponseWriter, r *http.Reque
 		},
 	}
 	encoded, err := json.Marshal(&response)
-	if err != nil {
-		msg := fmt.Sprintf("Unable to encode response: %s", err.Error())
+	if vErr != nil {
+		msg := fmt.Sprintf("Unable to encode response: %s", vErr.Error())
 		log.Printf(msg)
 		http.Error(w, msg, http.StatusInternalServerError)
 		return
@@ -82,7 +82,7 @@ func (sts *Server) conversationsInfoHandler(w http.ResponseWriter, r *http.Reque
 	_, _ = w.Write(encoded)
 }
 
-// handle channels.list and conversations.list
+// handle channels.list
 func listChannelsHandler(w http.ResponseWriter, _ *http.Request) {
 	_, _ = w.Write([]byte(defaultChannelsListJSON))
 }
diff --git a/slacktest/server.go b/slacktest/server.go
index aae2499..8187ac6 100644
--- a/slacktest/server.go
+++ b/slacktest/server.go
@@ -51,7 +51,6 @@ func NewTestServer(custom ...binder) *Server {
 	s.Handle("/rtm.connect", RTMConnectHandler)
 	s.Handle("/chat.postMessage", s.postMessageHandler)
 	s.Handle("/channels.list", listChannelsHandler)
-	s.Handle("/conversations.list", listChannelsHandler)
 	s.Handle("/conversations.create", createConversationHandler)
 	s.Handle("/conversations.setTopic", setConversationTopicHandler)
 	s.Handle("/conversations.setPurpose", setConversationPurposeHandler)
diff --git a/websocket_managed_conn_test.go b/websocket_managed_conn_test.go
index bb4e3e4..e8bbaf2 100644
--- a/websocket_managed_conn_test.go
+++ b/websocket_managed_conn_test.go
@@ -101,7 +101,7 @@ func TestRTMGoodbye(t *testing.T) {
 
 	select {
 	case <-done:
-		// magic numbers from empirical testing.
+		// magic numbers from emperical testing.
 		assert.Equal(t, connected <= 7, true)
 		assert.Equal(t, disconnected <= 12, true)
 	case <-time.After(5 * time.Second):
@@ -158,7 +158,7 @@ func TestRTMDeadConnection(t *testing.T) {
 
 	select {
 	case <-done:
-		// magic numbers from empirical testing.
+		// magic numbers from emperical testing.
 		assert.Equal(t, connected <= 7, true)
 		assert.Equal(t, disconnected <= 7, true)
 	case <-time.After(5 * time.Second):