Net::Async::Slack - support for the https://slack.com APIs with IO::Async
use IO::Async::Loop;
use Net::Async::Slack;
my $loop = IO::Async::Loop->new;
$loop->add(
my $slack = Net::Async::Slack->new(
token => '...',
)
);
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.
Establishes a connection to the Slack RTM websocket API, and resolves to a Net::Async::Slack::RTM instance.
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.
Upload file(s) to a channel or thread.
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.
Provide information about a channel.
Takes the following named parameters:
channel
- the channel ID to look up
and returns a Future which will resolve to a hashref containing
{ channel => { name => '...' } }
.
Attempt to join the given channel.
Takes the following named parameters:
channel
- the channel ID or name to join
Returns the hashref of API endpoints, loading them on first call from the share/endpoints.json
file.
Processes the given endpoint as a template, using the named parameters passed to the method.
API token.
Returns the HTTP instance used for communicating with the API.
Currently autocreates a Net::Async::HTTP instance.
Issues an HTTP GET request.
Issues an HTTP POST request.
- 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
Tom Molesworth TEAM@cpan.org
Copyright Tom Molesworth 2016-2023. Licensed under the same terms as Perl itself.