Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/thiamsantos/telegramex

Telegram's Bot API
https://github.com/thiamsantos/telegramex

elixir telegram-bot

Last synced: about 1 month ago
JSON representation

Telegram's Bot API

Awesome Lists containing this project

README

        

# Telegramex

Telegram's Bot API wrapper.

[![Hex.pm Version](http://img.shields.io/hexpm/v/telegramex.svg?style=flat)](https://hex.pm/packages/telegramex)
[![CI](https://github.com/thiamsantos/telegramex/workflows/CI/badge.svg?branch=main)](https://github.com/thiamsantos/telegramex/actions?query=branch%3Amain)
[![Coverage Status](https://coveralls.io/repos/github/thiamsantos/telegramex/badge.svg?branch=main)](https://coveralls.io/github/thiamsantos/telegramex?branch=main)

## Features

- Support for multiple bots
- Configurable HTTP client
- No application configuration

## Usage

1. Add the dependencies

```elixir
def deps do
[
{:finch, "~> 0.5"},
{:telegramex, "~> 0.1.1"}
]
end
```
2. Add the [finch](https://github.com/keathley/finch) client to your supervision tree

```elixir
children = [
{Finch, name: Telegramex.HTTPClient}
]
```

**Note**: Checkout the `Telegramex.Client` on how to use other HTTP client.

3. Make a request

```elixir
client = %Telegramex.Client{token: "123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11"}
Telegramex.get_updates(client)
```

Full documentation can be found at [https://hexdocs.pm/telegramex](https://hexdocs.pm/telegramex).

## Telemetry

Telegramex executes the following events:

* `[:telegramex, :call, :start]` - Executed before calling the Telegram Bot API.

#### Measurements
* `:system_time` - The system time

#### Metadata:
* `:method` - The Telegram Bot API method call
* `:body` - The body of the API call

* `[:telegramex, :call, :stop]` - Executed after a API call.

#### Measurements
* `:duration` - Duration of the API call.

#### Metadata
* `:method` - The Telegram Bot API method call
* `:body` - The body of the API call
* `:response` - (optional) In case of success (status 200), the response of the api as returned by the HTTP client.
* `:error` - (optional) In case of a error, returns the error.

* `[:telegramex, :call, :exception]` - Executed if the API call raises an exception.

#### Measurements
* `:duration` - The time it took before raising an exception

#### Metadata
* `:method` - The Telegram Bot API method call
* `:body` - The body of the API call
* `:kind` - The type of exception.
* `:error` - Error description or error data.
* `:stacktrace` - The stacktrace

## Changelog

See the [changelog](CHANGELOG.md).

## Contributing

See the [contributing file](CONTRIBUTING.md).

## License

[Apache License, Version 2.0](LICENSE) © [Thiago Santos](https://github.com/thiamsantos)