code: func (api *Client) JoinConversationContext(ctx context.Context, channelID string) (*Channel, string, []string, error) {
  	values := url.Values{"token": {api.token}, "channel": {channelID}}
  	response := struct {
  		Channel          *Channel `json:"channel"`
  		Warning          string   `json:"warning"`
  		ResponseMetaData *struct {
  			Warnings []string `json:"warnings"`
  		} `json:"response_metadata"`
  		SlackResponse
  	}{}
  	err := api.postMethod(ctx, "conversations.join", values, &response)
  	if err != nil {
  		return nil, "", nil, err
  	}
  	if response.Err() != nil {
  		return nil, "", nil, response.Err()
  	}
  	var warnings []string
  	if response.ResponseMetaData != nil {
  		warnings = response.ResponseMetaData.Warnings
  	}
  	return response.Channel, response.Warning, warnings, nil
  }
docs: // JoinConversationContext joins an existing conversation with a custom context