diff options
author | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2019-08-09 02:02:05 +0300 |
---|---|---|
committer | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2019-08-09 02:02:05 +0300 |
commit | 94c96cef29cd83bc60b2eabb8bb89c9fd8c7059b (patch) | |
tree | 676b3e2b6ffb171e102931e5fac01f7a4621c20a /README.md | |
parent | d13acd7da9bd1c08de33b91120a479df88d21db2 (diff) |
0.1.8 Release
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 69 |
1 files changed, 61 insertions, 8 deletions
@@ -1,22 +1,75 @@ # TamTam Go -Простая реализация клиента к TamTam Bot API на Go. +[![Sourcegraph](https://sourcegraph.com/github.com/neonxp/tamtam/-/badge.svg?style=flat-square)](https://sourcegraph.com/github.com/neonxp/tamtam?badge) +[![GoDoc](http://img.shields.io/badge/go-documentation-blue.svg?style=flat-square)](http://godoc.org/github.com/neonxp/tamtam) +[![Go Report Card](https://goreportcard.com/badge/github.com/neonxp/tamtam?style=flat-square)](https://goreportcard.com/report/github.com/neonxp/tamtam) +[![License](http://img.shields.io/badge/license-mit-blue.svg?style=flat-square)](https://raw.githubusercontent.com/neonxp/tamtam/master/LICENSE) -На данном этапе представляет собой 1 в 1 реализованные методы API + HTTPHandler для веб-хуков + сгенерированные модели. +Простая реализация клиента к TamTam Bot API на Go. Поддерживается получение обновление как с помощью вебхуков, так и лонгполлингом. + +Поддерживаемая версия API - 0.1.8 ## Документация +В общем случае, методы повторяют такие из [официальной документации](https://dev.tamtam.chat/) +Так же добавлены хелпер для создания клавиатуры (`api.Messages.NewKeyboardBuilder()`) и для загрузки вложений (`api.Uploads.UploadMedia(uploadType UploadType, filename string)`). Пример создания клавиатуры см. ниже в примере. + +Остальное описано тут http://godoc.org/github.com/neonxp/tamtam/ и в примерах из директории [examples](https://github.com/neonxp/tamtam/tree/master/examples) + +## Пример -Её пока нет :) +```go +package main -Но http://godoc.org/github.com/neonxp/tamtam/ может вам помочь. +import ( + "context" + "fmt" + "log" + "os" -## Статус + "github.com/neonxp/tamtam" +) -API пока крайне неставбильное и обязательно будет меняться в будущем. Учитывайте это! +func main() { + api := tamtam.New(os.Getenv("TOKEN")) -## Пример + info, err := api.Bots.GetBot() // Простой метод + log.Printf("Get me: %#v %#v", info, err) + go api.UpdatesLoop(context.Background()) // Запуск цикла получения обновлений + for upd := range api.GetUpdates() { // Чтение из канала с обновлениями + log.Printf("Received: %#v", upd) + switch upd := upd.(type) { // Определение типа пришедшего обновления + case *tamtam.MessageCreatedUpdate: + // Создание клавиатуры + keyboard := api.Messages.NewKeyboardBuilder() + keyboard. + AddRow(). + AddGeolocation("Прислать геолокацию", true). + AddContact("Прислать контакт") + keyboard. + AddRow(). + AddLink("Библиотека", tamtam.POSITIVE, "https://github.com/neonxp/tamtam"). + AddCallback("Колбек 1", tamtam.NEGATIVE, "callback_1"). + AddCallback("Колбек 2", tamtam.NEGATIVE, "callback_2") -Простые примеры использования находятся в директории `examples`. + // Отправка сообщения с клавиатурой + res, err := api.Messages.SendMessage(0, upd.Message.Sender.UserId, &tamtam.NewMessageBody{ + Text: fmt.Sprintf("Hello, %s! Your message: %s", upd.Message.Sender.Name, upd.Message.Body.Text), + Attachments: []interface{}{ + tamtam.NewInlineKeyboardAttachmentRequest(keyboard.Build()), + }, + }) + log.Printf("Answer: %#v %#v", res, err) + case *tamtam.MessageCallbackUpdate: + res, err := api.Messages.SendMessage(0, upd.Callback.User.UserId, &tamtam.NewMessageBody{ + Text: "Callback: " + upd.Callback.Payload, + }) + log.Printf("Answer: %#v %#v", res, err) + default: + log.Printf("Unknown type: %#v", upd) + } + } +} +``` ## Автор |