Slack v0.2.1 Slack View Source
A client for the Slack API.
This library exports a module for each namespace on the Slack API. For each method in that namespace, a function is exported from its parent module. Nested namespaces are in nested modules.
When looking at the Slack API documentation, if you see a method called
usergroups.users.list
, you know that you can call this API method with the
function call Slack.UserGroup.User.list
. Note that all module names are
singular, regardless of whether they are singular or plural in the Slack API.
Authentication
For Slack API endpoints that require an authentication token (which is all of
them save some special OAuth endpoints), a Slack.Client.t
must be passed
in as the first argument to a function call:
access_token
|> Slack.client # Creates a new `Slack.Client.t`
|> Slack.Channel.list
While the typespec currently expects a Slack.Client.t
, anything can
technically passed in on which the function can call client.token
.
Request Methods
The Slack API allows clients to either issue GET
or POST
requests for any
API method. In this client, POST
is used whenever the request can
potentially create or change data. Otherwise, a GET
is used.
Return Values
For any successful method, the Slack API returns a key "okay"
in the
response body with true
as the value. When handling a response, this library
checks for this value and if it is present, returns {:ok, response_body}
.
An HTTPoison.Response.t
is only returned when a method call fails, in a
tuple: {:error, response}
.
Arbitrary Request
To make some arbitrary request that is not in this library, you can use
special HTTP methods on the Slack
module:
{:ok, response} =
Slack.get "namespace.method", [], params: [token: access_token]
Link to this section Summary
Functions
Issues a DELETE request to the given url.
Issues a DELETE request to the given url, raising an exception in case of failure.
Issues a GET request to the given url.
Issues a GET request to the given url, raising an exception in case of failure.
Issues a HEAD request to the given url.
Issues a HEAD request to the given url, raising an exception in case of failure.
Issues an OPTIONS request to the given url.
Issues a OPTIONS request to the given url, raising an exception in case of failure.
Issues a PATCH request to the given url.
Issues a PATCH request to the given url, raising an exception in case of failure.
Issues a POST request to the given url.
Issues a POST request to the given url, raising an exception in case of failure.
Callback implementation for HTTPoison.Base.process_headers/1
.
Callback implementation for HTTPoison.Base.process_request_body/1
.
Callback implementation for HTTPoison.Base.process_request_headers/1
.
Callback implementation for HTTPoison.Base.process_request_options/1
.
Callback implementation for HTTPoison.Base.process_request_params/1
.
Callback implementation for HTTPoison.Base.process_request_url/1
.
Callback implementation for HTTPoison.Base.process_response/1
.
Callback implementation for HTTPoison.Base.process_response_body/1
.
Callback implementation for HTTPoison.Base.process_response_chunk/1
.
Callback implementation for HTTPoison.Base.process_response_headers/1
.
Callback implementation for HTTPoison.Base.process_response_status_code/1
.
Callback implementation for HTTPoison.Base.process_status_code/1
.
Callback implementation for HTTPoison.Base.process_url/1
.
Issues a PUT request to the given url.
Issues a PUT request to the given url, raising an exception in case of failure.
Issues an HTTP request using a Request
struct.
Issues an HTTP request with the given method to the given url.
Issues an HTTP request with the given method to the given url, raising an exception in case of failure.
Starts HTTPoison and its dependencies.
Requests the next message to be streamed for a given HTTPoison.AsyncResponse
.
Link to this section Types
slack_response()
View Sourceslack_response() :: {:ok, map()} | {:error, HTTPoison.Response.t()} | {:error, HTTPoison.Error.t()}
Link to this section Functions
delete(url, headers \\ [], options \\ [])
View Sourcedelete(binary(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a DELETE request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
delete!(url, headers \\ [], options \\ [])
View Sourcedelete!(binary(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a DELETE request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
get(url, headers \\ [], options \\ [])
View Sourceget(binary(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a GET request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
get!(url, headers \\ [], options \\ [])
View Sourceget!(binary(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a GET request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
head(url, headers \\ [], options \\ [])
View Sourcehead(binary(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a HEAD request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
head!(url, headers \\ [], options \\ [])
View Sourcehead!(binary(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a HEAD request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
options(url, headers \\ [], options \\ [])
View Sourceoptions(binary(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues an OPTIONS request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
options!(url, headers \\ [], options \\ [])
View Sourceoptions!(binary(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a OPTIONS request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
patch(url, body, headers \\ [], options \\ [])
View Sourcepatch(binary(), any(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a PATCH request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
patch!(url, body, headers \\ [], options \\ [])
View Sourcepatch!(binary(), any(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a PATCH request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
post(url, body, headers \\ [], options \\ [])
View Sourcepost(binary(), any(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a POST request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
post!(url, body, headers \\ [], options \\ [])
View Sourcepost!(binary(), any(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a POST request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
Callback implementation for HTTPoison.Base.process_headers/1
.
Callback implementation for HTTPoison.Base.process_request_body/1
.
Callback implementation for HTTPoison.Base.process_request_headers/1
.
Callback implementation for HTTPoison.Base.process_request_options/1
.
Callback implementation for HTTPoison.Base.process_request_params/1
.
Callback implementation for HTTPoison.Base.process_request_url/1
.
Callback implementation for HTTPoison.Base.process_response/1
.
Callback implementation for HTTPoison.Base.process_response_body/1
.
Callback implementation for HTTPoison.Base.process_response_chunk/1
.
Callback implementation for HTTPoison.Base.process_response_headers/1
.
Callback implementation for HTTPoison.Base.process_response_status_code/1
.
Callback implementation for HTTPoison.Base.process_status_code/1
.
Callback implementation for HTTPoison.Base.process_url/1
.
put(url, body \\ "", headers \\ [], options \\ [])
View Sourceput(binary(), any(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues a PUT request to the given url.
Returns {:ok, response}
if the request is successful, {:error, reason}
otherwise.
See request/5
for more detailed information.
put!(url, body \\ "", headers \\ [], options \\ [])
View Sourceput!(binary(), any(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues a PUT request to the given url, raising an exception in case of failure.
If the request does not fail, the response is returned.
See request!/5
for more detailed information.
request(request)
View Sourcerequest(HTTPoison.Request.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues an HTTP request using a Request
struct.
This function returns {:ok, response}
or {:ok, async_response}
if the
request is successful, {:error, reason}
otherwise.
Examples
request = %HTTPoison.Request{
method: :post,
url: "https://my.website.com",
body: "{\"foo\": 3}",
headers: [{"Accept", "application/json"}]
}
request(request)
request(method, url, body \\ "", headers \\ [], options \\ [])
View Sourcerequest(atom(), binary(), any(), headers(), Keyword.t()) :: {:ok, HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Issues an HTTP request with the given method to the given url.
This function is usually used indirectly by get/3
, post/4
, put/4
, etc
Args:
method
- HTTP method as an atom (:get
,:head
,:post
,:put
,:delete
, etc.)url
- target url as a binary string or char listbody
- request body. See more belowheaders
- HTTP headers as an orddict (e.g.,[{"Accept", "application/json"}]
)options
- Keyword list of options
Body: see type HTTPoison.Request
Options: see type HTTPoison.Request
This function returns {:ok, response}
or {:ok, async_response}
if the
request is successful, {:error, reason}
otherwise.
Examples
request(:post, "https://my.website.com", "{\"foo\": 3}", [{"Accept", "application/json"}])
request!(method, url, body \\ "", headers \\ [], options \\ [])
View Sourcerequest!(atom(), binary(), any(), headers(), Keyword.t()) :: HTTPoison.Response.t() | HTTPoison.AsyncResponse.t()
Issues an HTTP request with the given method to the given url, raising an exception in case of failure.
request!/5
works exactly like request/5
but it returns just the
response in case of a successful request, raising an exception in case the
request fails.
Starts HTTPoison and its dependencies.
stream_next(resp)
View Sourcestream_next(HTTPoison.AsyncResponse.t()) :: {:ok, HTTPoison.AsyncResponse.t()} | {:error, HTTPoison.Error.t()}
Requests the next message to be streamed for a given HTTPoison.AsyncResponse
.
See request!/5
for more detailed information.