defmodule ExLine do
@moduledoc """
An Elixir client for the [LINE](https://developers.line.biz/) platform.
`ExLine` wraps the LINE **Messaging API** (with LIFF / LINE Login planned). It is
built around a few small ideas:
* **Credentials are values.** Build an `ExLine.Client` and pass it per call;
there is no global state, so multi-channel / multi-tenant apps are first-class.
* **HTTP is swappable.** Calls go through `ExLine.Client.Adapter`, so tests can
mock the network.
* **Webhooks verify and route.** `ExLine.Webhook.Signature` / `ExLine.Webhook.Plug`
verify the `x-line-signature`; `ExLine.EventRouter` dispatches events.
## Quick start
client = ExLine.Client.new(access_token: "CHANNEL_ACCESS_TOKEN")
ExLine.Api.Messaging.push(client, "U123...", ExLine.Message.text("hello"))
See `ExLine.Api.Messaging`, `ExLine.Message`, `ExLine.Webhook.Signature`, and
`ExLine.EventRouter`.
"""
end