Skip to content

InsanusMokrassar/TelegramBotAPI-bot_template

Repository files navigation

Telegram Bot Template

That is template for telegram bots based on next stack of technologies:

Default

Since you have used this repo as a template you can copy file example.config.json as local.config.json, put there your bot token and simply run command ./gradlew run --args="local.config.json". As an output you will get your bot information like:

ExtendedBot(id=ChatId(chatId=1234567890), username=Username(username=@username_of_your_bot), firstName=Name of bot, lastName=, canJoinGroups=(some boolean), canReadAllGroupMessages=(some boolean), supportsInlineQueries=(some boolean))

Docker

In this template there is template-like docker-compose and docker files. Besides, there is Makefile and you may use something like make buildAndStartCompose to start your bot.

It is important to replace "TOKEN" in Dockerfile or remove and add some config as a volume.

Config

But you may set up several things for your bot. You should start with adding client object:

{
  "token": "your bot token",
  "client": {
    "connectionTimeoutMillis": 10000,
    "requestTimeoutMillis": 10000,
    "responseTimeoutMillis": 10000,
    "proxy": {
      "hostname": "127.0.0.1",
      "port": 1080,
      "type": "socks",
      "username": "username",
      "password": "password"
    }
  }
}

Required fields:

  • token
  • client/proxy/hostname (if you pass client and proxy fields) - hostname of proxy server
  • client/proxy/password - password for authentication on proxy server, required if client/proxy/type is socks and client/proxy/username passed

Optional fields:

  • client - object with client configs
  • client/connectionTimeoutMillis - timeout for connection to the server
  • client/requestTimeoutMillis - timeout for request complete (when request taken on server)
  • client/responseTimeoutMillis - timeout for getting a response after request taken on server
  • client/proxy - proxy settings
  • client/proxy/port - port of proxy server
  • client/proxy/type - type of proxy server (can be socks or http)
  • client/proxy/username - username for authentication on proxy server
  • client/proxy/password - password for authentication on proxy server

Basically, your config looks like an object with token:

{
  "token": "your bot token"
}

What next?

There are several ways to continue:

In other words, this template (and TelegramBotAPI library) does not limit you on choosing of way to continue 😊