tgpollbot

command module
v0.0.0-...-36f00d2 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 28, 2022 License: MIT Imports: 14 Imported by: 0

README

TGPollBot


Шлюз для Telegram API

Запуск

Для запуска необходимы следующие переменные окружения:

  • X_API_KEY - ключ авторизации HTTP запросов
  • USERS - список ID пользователей Telegram, разделенных запятой
  • TOKEN - ключ авторизации бота в системе Telegram
  • REDIS_DB - подключение к Redis серверу вида redisdb://username:password@localhost:port/db

Примерный вид файла docker-compose.yml может быть таким:

version: "3.9"

services:
 tgpollbot:
   image: skydim/tgpollbot
   container_name: tgpollbot
   restart: always
   ports:
     - 8080:8080
   environment:
     - REDIS_DB=redisdb://redis:6379/1
     - X_API_KEY=1234567890
     - USERS=123456789,225544522
     - TOKEN=XXXXXXXXXX:YYYYYYYYYYYYYYYYYYYYY
HTTP API

Для доступа используется ключ доступа X-API-Key, передаваемый в header

Создать Опрос

Запрос: POST /v1/

{
  "message": "Poll title", // string значение, максимальная длина 4096 символов
  "buttons": [
    "option 1", // string значение, максимальная длина 100 символов
    "option 2", // string значение
    "option 3" // string значение
  ]
}

Если поле message превышает 300 символов, то задание разбивается на два этапа:

  • посылка сообщения, с содержимым поля message
  • посылка опроса, с заголовком "choose an option"

Ответ:

{
  "request_id": "cbh3tjmg26ucsirdm4rg" // string значение, идентификатор опроса
}
Получить статус опроса

Запрос: GET /v1/:request_id

Пример: GET /v1/cbh3tjmg26ucsirdm4rg

Варианты ответов:

{
  "status": "processing"
}

Выдается, в случае если опрос создан, но еще не получен ответ на этот опрос пользователем Telegram

{
  "status": "done",
  "option": 0, // int значение - индекс выбранного ответа из массива buttons (счет начинается с нуля)
  "text": "Option 1" // string значение - текст выбранного ответа
}

В случае ошибок, сервер вернет ответ вида

{
  "error": "краткое описание ошибки",
  "details": "подробное описание ошибки"
}

с соответствующим кодом ответа

Telegram

Для работы с ботом, необходимо первоначально создать чат с ним:

Если пользователь не имеет доступа к сервису, то в ответ будет послано сообщение с текстом, где указан ID пользователя

UserID

Иначе, пользователю будет сообщено, что он имеет доступ к сервису

NotAllowed

После регистрации нового опроса в системе пользователь телеграма получит

NewPoll

В случае, если поле message превышает 300 символов, задача разбивается на две части:

  • сообщение с текстом
  • сообщение с опросом

BigPoll

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
lib
db

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL