line_bot v0.1.0 LineBot.APIClient View Source
An implementation of HTTPoison.Base
for making API calls to the Messaging API.
API Client
This module is for creating and sending HTTP requests manually. To use the documented messaging
API endpoints, use the LineBot
module, which calls the functions in this module.
Implementation
This module extends HTTPoison.Base
with the following behaviour:
- The
Authorization
header containing the bearer token is automatically added. The access token is retreived fromLineBot.TokenServer
. - URLs are automatically prefixed with
https://api.line.me/v2/bot/
. When making a request, only the path after this prefix is required. - JSON responses are automatically decoded.
- POST requests are automatically encoded into JSON, and the appropriate
Content-Type
header is added. - 401 Unauthorized errors are caught. When an unauthorized request is received, an attempt
to retrieve a new access token is made by calling
LineBot.TokenServer.purge/0
. However, after three successive unauthorized errors, further unauthorized responses are returned directly.
Link to this section Summary
Functions
Returns a specification to start this module under a supervisor.
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.
The body is automatically encoded into JSON, and the Content-Type
header is added.
Issues a POST request to the given url.
Issues a POST request to the given url.
The body is automatically encoded into JSON, and the Content-Type
header is added.
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
.
Adds the OAuth Bearer token to the Authorization
header.
The token is retrieved by calling LineBot.TokenServer.get_token/0
.
Callback implementation for HTTPoison.Base.process_request_options/1
.
Callback implementation for HTTPoison.Base.process_request_params/1
.
Prepends the request url with https://api.line.me/v2/bot/
.
If the reponse headers indidate that the response is JSON, the response body is automatically decoded.
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.
In addition to the HTTPoison.request/5
behaviour, will automatically refresh the access
token after an unauthorized request. Gives up after three subsequent unauthorized errors.
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
Link to this section Functions
Returns a specification to start this module under a supervisor.
See Supervisor
.
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.
Issues a POST request to the given url.
The body is automatically encoded into JSON, and the Content-Type
header is added.
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.
Issues a POST request to the given url.
The body is automatically encoded into JSON, and the Content-Type
header is added.
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
.
Adds the OAuth Bearer token to the Authorization
header.
The token is retrieved by calling LineBot.TokenServer.get_token/0
.
Also adds the User-Agent
header with a value of line-botsdk-elixir/vX.X.X
.
This follows the pattern of Line Bot libraries in other languages.
Callback implementation for HTTPoison.Base.process_request_options/1
.
Callback implementation for HTTPoison.Base.process_request_params/1
.
Prepends the request url with https://api.line.me/v2/bot/
.
process_response(response)
View Sourceprocess_response(HTTPoison.Base.response()) :: any()
If the reponse headers indidate that the response is JSON, the response body is automatically decoded.
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()}
In addition to the HTTPoison.request/5
behaviour, will automatically refresh the access
token after an unauthorized request. Gives up after three subsequent unauthorized errors.
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.