WebService::Slack::WebApi - a simple wrapper for Slack Web API

NAME  SYNOPSIS  DESCRIPTION  Options  User Agent  Proxy  METHODS  Basis  Return value  The token parameter  Optional parameters  Not primitive parameters  SEE ALSO  AUTHOR  LICENSE 

NAME

WebService::Slack::WebApi − a simple wrapper for Slack Web API

SYNOPSIS

use WebService::Slack::WebApi;
# By default we use the HTTP client library Furl but you can also use any other
# Eg. LWP::UserAgent
my $slack = WebService::Slack::WebApi−>new( ua => LWP::UserAgent−>new() );
# the token is required unless using $slack−>oauth−>access
my $slack = WebService::Slack::WebApi−>new(token => 'access token');
# getting channel's descriptions
my $channels = $slack−>conversations−>list;
# posting message to specified channel and getting message description
my $posted_message = $slack−>chat−>post_message(
channel => 'channel id', # required
text => 'hoge', # required (not required if 'attachments' argument exists)
username => 'fuga', # optional
# other optional parameters...
);

DESCRIPTION

WebService::Slack::WebApi is a simple wrapper for Slack Web API (https://api.slack.com/web).

Options

You can set some options by giving "opt" parameter to "new" method. All values of "opt" are given to "Furl#new".

WebService::Slack::WebApi−>new(token => 'access token', opt => {});

User Agent

By default WebService::Slack::WebApi uses the Furl HTTP client. But if your software is already using some other client, e.g. LWP::UserAgent or HTTP::Tiny, you can also use that. Under the hood WebService::Slack::WebApi uses the HTTP client wrapper HTTP::AnyUA.

Use parameter "ua" to specify the user agent which you have already created.

my $ua = LWP::UserAgent−>new( timeout => 10 );
my $slack = WebService::Slack::WebApi−>new( ua => $ua );

If you use both parameters "ua" and "opt", WebService::Slack::WebApi will throw an exception. This combination is illegal.

Proxy

"opt" can contain "env_proxy" as boolean value . If "env_proxy" is true then proxy settings are loaded from $ENV{HTTP_PROXY} and $ENV{NO_PROXY} by calling "Furl#env_proxy" method. See also https://metacpan.org/pod/Furl#furl−env_proxy.

METHODS

This module provides all methods declared in the API reference (https://api.slack.com/methods).

Basis

"WebService::Slack::WebApi::Namespace::method_name" corresponds to "namespace.methodName" in Slack Web API. For example "WebService::Slack::WebApi::Chat::post_message" corresponds to "chat.postMessage". You describe as below to call "Chat::post_message" method.

my $result = $slack−>chat−>post_message;

Return value

All methods return HashRef. When you want to know what is contained in HashRef, see the API reference.

The token parameter

The API reference shows "chat.update" method require 4 parameters: "token", "ts", "channel" and "text". When using this module "token" parameter is added implicitly except using "oauth.access" method. So you pass the other 3 parameters to "Chat::update" method as shown below.

my $result = $slack−>chat−>update(
ts => '1401383885.000061', # as Str
channel => 'channel id',
text => 'hoge',
);

Optional parameters

Some methods have optional parameters. If a parameter is optional in the API reference, it is also optional in this module.

Not primitive parameters

These parameters are not primitive:
"files.upload.file": string of path to local file
"files.upload.channels": ArrayRef of channel id string

SEE ALSO

https://api.slack.com/web
https://api.slack.com/methods

AUTHOR

Mihyaeru/mihyaeru21 <[email protected]>

LICENSE

Copyright (C) Mihyaeru/mihyaeru21

Released under the MIT license.

See "LICENSE" file.


Updated 2024-01-29 - jenkler.se | uex.se