NAME

   Net::Async::Slack - support for the https://slack.com APIs with
   IO::Async

SYNOPSIS

    use IO::Async::Loop;
    use Net::Async::Slack;
    my $loop = IO::Async::Loop->new;
    $loop->add(
     my $gh = Net::Async::Slack->new(
      token => '...',
     )
    );

DESCRIPTION

   This is a basic wrapper for Slack's API. It's an early version, the
   module API is likely to change somewhat over time.

   See the examples/ directory for usage.

METHODS

rtm

   Establishes a connection to the Slack RTM websocket API, and resolves
   to a Net::Async::Slack::RTM instance.

send_message

   Send a message to a user or channel.

   Supports the following named parameters:

     * channel - who to send the message to, can be a channel ID or
     #channel name, or user ID

     * text - the message, see
     https://api.slack.com/docs/message-formatting for details

     * attachments - more advanced messages, see
     https://api.slack.com/docs/message-attachments

     * parse - whether to parse content and convert things like links

   and the following named boolean parameters:

     * link_names - convert @user and #channel to links

     * unfurl_links - show preview for URLs

     * unfurl_media - show preview for things that look like media links

     * as_user - send as user

     * reply_broadcast - send to all users when replying to a thread

   Returns a Future, although the content of the response is subject to
   change.

METHODS - Internal

endpoints

   Returns the hashref of API endpoints, loading them on first call from
   the share/endpoints.json file.

endpoint

   Processes the given endpoint as a template, using the named parameters
   passed to the method.

oauth_request

token

   API token.

http

   Returns the HTTP instance used for communicating with the API.

   Currently autocreates a Net::Async::HTTP instance.

http_get

   Issues an HTTP GET request.

http_post

   Issues an HTTP POST request.

SEE ALSO

     * AnyEvent::SlackRTM - low-level API wrapper around RTM

     * Mojo::SlackRTM - another RTM-specific wrapper, this time based on
     Mojolicious

     * Slack::RTM::Bot - more RTM support, this time via LWP and a
     subprocess/thread for handling the websocket part

     * WebService::Slack::WebApi - Furl-based wrapper around the REST API

     * AnyEvent::SlackBot - another AnyEvent RTM implementation

AUTHOR

   Tom Molesworth <[email protected]>

LICENSE

   Copyright Tom Molesworth 2016-2017. Licensed under the same terms as
   Perl itself.