Slack v0.23.5 Slack.Web.Chat View Source

Link to this section Summary

Link to this section Functions

Link to this function

delete(channel, ts, optional_params \\ %{}) View Source

Deletes a message.

Required Params

  • channel - Channel containing the message to be deleted.
  • ts - Timestamp of the message to be deleted. ex: 1405894322.002768

Errors the API can return:

  • cant_delete_message - Authenticated user does not have permission to delete this message.
  • channel_not_found - Value passed for channel was invalid.
  • compliance_exports_prevent_deletion - Compliance exports are on, messages can not be deleted
  • message_not_found - No message exists with the requested timestamp.
Link to this function

get_permalink(channel, message_ts, optional_params \\ %{}) View Source

Retrieve a permalink URL for a specific extant message.

Required Params

  • channel - The ID of the conversation or channel containing the message.
  • message_ts - A message's ts value, uniquely identifying it within a channel. ex: 1405894322.002768

Optional Params

  • token - ex: xxxx-xxxxxxxxx-xxxx

Errors the API can return:

  • channel_not_found - Value passed for channel was invalid.
  • message_not_found - No message exists with the requested timestamp.
Link to this function

post_ephemeral(channel, text, user, optional_params \\ %{}) View Source

Sends an ephemeral message to a channel.

Required Params

  • channel - Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See below for more details.
  • text - Text of the message to send. See below for an explanation of formatting. ex: Hello world
  • user - id of the user who will receive the ephemeral message. The user should be in the channel specified by the channel argument.

Optional Params

  • as_user - Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below. ex: true
  • attachments - Structured message attachments. ex: [{"pretext": "pre-hello", "text": "text-world"}]
  • blocks - A JSON-based array of structured blocks, presented as a URL-encoded string ex: [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
  • link_names - Find and link channel names and usernames. ex: 1
  • parse - Change how messages are treated. Defaults to none. See below. ex: full

Errors the API can return:

  • channel_not_found - Value passed for channel was invalid.
  • is_archived - Channel has been archived.
  • msg_too_long - Message text is too long
  • no_text - No message text provided
  • rate_limited - Application has posted too many messages, read the Rate Limit documentation for more information
  • user_not_in_channel - Cannot post user messages to a channel they are not in.
Link to this function

post_message(channel, text, optional_params \\ %{}) View Source

Sends a message to a channel.

Required Params

  • channel - Channel, private group, or IM channel to send message to. Can be an encoded ID, or a name. See below for more details.
  • text - Text of the message to send. See below for an explanation of formatting. ex: Hello world

Optional Params

  • as_user - Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See authorship below. ex: true
  • attachments - Structured message attachments. ex: [{"pretext": "pre-hello", "text": "text-world"}]
  • blocks - A JSON-based array of structured blocks, presented as a URL-encoded string ex: [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
  • icon_emoji - emoji to use as the icon for this message. Overrides icon_url. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below. ex: :chart_with_upwards_trend:
  • icon_url - URL to an image to use as the icon for this message. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below. ex: http://lorempixel.com/48/48
  • link_names - Find and link channel names and usernames. ex: 1
  • parse - Change how messages are treated. Defaults to none. See below. ex: full
  • unfurl_links - Pass true to enable unfurling of primarily text-based content. ex: true
  • unfurl_media - Pass false to disable unfurling of media content. ex: false
  • username - Set your bot's user name. Must be used in conjunction with as_user set to false, otherwise ignored. See authorship below. ex: My Bot

Errors the API can return:

  • channel_not_found - Value passed for channel was invalid.
  • is_archived - Channel has been archived.
  • msg_too_long - Message text is too long
  • no_text - No message text provided
  • not_in_channel - Cannot post user messages to a channel they are not in.
  • rate_limited - Application has posted too many messages, read the Rate Limit documentation for more information
Link to this function

schedule_message(channel, post_at, token, optional_params \\ %{}) View Source

Schedules a message to be sent to a channel.

Required Params

  • channel - Channel, private group, or DM channel to send message to. Can be an encoded ID, or a name. ex: C1234567890
  • post_at - Unix EPOCH timestamp of time in future to send the message. ex: 299876400
  • token - Authentication token bearing required scopes. ex: xxxx-xxxxxxxxx-xxxx

Optional Params

  • as_user - Pass true to post the message as the authed user, instead of as a bot. Defaults to false. See chat.postMessage. ex: true
  • attachments - A JSON-based array of structured attachments, presented as a URL-encoded string. ex: [{"pretext": "pre-hello", "text": "text-world"}]
  • blocks - A JSON-based array of structured blocks, presented as a URL-encoded string. ex: [{"type": "section", "text": {"type": "plain_text", "text": "Hello world"}}]
  • link_names - Find and link channel names and usernames. ex: true
  • parse - Change how messages are treated. Defaults to none. See chat.postMessage. ex: full
  • reply_broadcast - Used in conjunction with thread_ts and indicates whether reply should be made visible to everyone in the channel or conversation. Defaults to false. ex: true
  • thread_ts - Provide another message's ts value to make this message a reply. Avoid using a reply's ts value; use its parent instead. ex: 1234567890.123456
  • unfurl_links - Pass true to enable unfurling of primarily text-based content. ex: true
  • unfurl_media - Pass false to disable unfurling of media content. ex: false

Errors the API can return:

  • account_inactive - Authentication token is for a deleted user or workspace.
  • channel_not_found - Value passed for channel was invalid.
  • ekm_access_denied - Administrators have suspended the ability to post a message.
  • fatal_error - The server could not complete your operation(s) without encountering a catastrophic error. It's possible some aspect of the operation succeeded before the error was raised.
  • invalid_arg_name - The method was passed an argument whose name falls outside the bounds of accepted or expected values. This includes very long names and names with non-alphanumeric characters other than _. If you get this error, it is typically an indication that you have made a very malformed API call.
  • invalid_arguments - The method was called with invalid arguments.
  • invalid_auth - Some aspect of authentication cannot be validated. Either the provided token is invalid or the request originates from an IP address disallowed from making the request.
  • invalid_charset - The method was called via a POST request, but the charset specified in the Content-Type header was invalid. Valid charset names are: utf-8 iso-8859-1.
  • invalid_form_data - The method was called via a POST request with Content-Type application/x-www-form-urlencoded or multipart/form-data, but the form data was either missing or syntactically invalid.
  • invalid_post_type - The method was called via a POST request, but the specified Content-Type was invalid. Valid types are: application/json application/x-www-form-urlencoded multipart/form-data text/plain.
  • invalid_time - value passed for post_time was invalid.
  • is_archived - Channel has been archived.
  • missing_post_type - The method was called via a POST request and included a data payload, but the request did not include a Content-Type header.
  • missing_scope - The token used is not granted the specific scope permissions required to complete this request.
  • msg_too_long - Message text is too long
  • no_permission - The workspace token used in this request does not have the permissions necessary to complete the request. Make sure your app is a member of the conversation it's attempting to post a message to.
  • no_text - No message text provided
  • not_authed - No authentication token provided.
  • not_in_channel - Cannot post user messages to a channel they are not in.
  • org_login_required - The workspace is undergoing an enterprise migration and will not be available until migration is complete.
  • rate_limited - Application has posted too many messages, read the Rate Limit documentation for more information
  • request_timeout - The method was called via a POST request, but the POST data was either missing or truncated.
  • restricted_action - A workspace preference prevents the authenticated user from posting.
  • restricted_action_non_threadable_channel - Cannot post thread replies into a non_threadable channel.
  • restricted_action_read_only_channel - Cannot post any message into a read-only channel.
  • restricted_action_thread_only_channel - Cannot post top-level messages into a thread-only channel.
  • team_added_to_org - The workspace associated with your request is currently undergoing migration to an Enterprise Organization. Web API and other platform operations will be intermittently unavailable until the transition is complete.
  • time_in_past - value passed for post_time was in the past.
  • time_too_far - value passed for post_time was too far into the future.
  • token_revoked - Authentication token is for a deleted user or workspace or the app has been removed.
  • too_many_attachments - Too many attachments were provided with this message. A maximum of 100 attachments are allowed on a message.
Link to this function

update(channel, text, ts, optional_params \\ %{}) View Source

Updates a message.

Required Params

  • channel - Channel containing the message to be updated.
  • text - New text for the message, using the default formatting rules. ex: Hello world
  • ts - Timestamp of the message to be updated. ex: 1405894322.002768

Optional Params

  • as_user - Pass true to update the message as the authed user. Bot users in this context are considered authed users. ex: true
  • attachments - Structured message attachments. ex: [{"pretext": "pre-hello", "text": "text-world"}]
  • link_names - Find and link channel names and usernames. Defaults to none. This parameter should be used in conjunction with parse. To set link_names to 1, specify a parse mode of full. ex: 1
  • parse - Change how messages are treated. Defaults to client, unlike chat.postMessage. See below. ex: none

Errors the API can return:

  • cant_update_message - Authenticated user does not have permission to update this message.
  • channel_not_found - Value passed for channel was invalid.
  • edit_window_closed - The message cannot be edited due to the team message edit settings
  • message_not_found - No message exists with the requested timestamp.
  • msg_too_long - Message text is too long
  • no_text - No message text provided