Documentation
¶
Index ¶
- Constants
- type Application
- type ApplicationType
- type BaseHTTPContext
- func (bhc *BaseHTTPContext) GetContext() context.Context
- func (bhc *BaseHTTPContext) GetHeader(headerName string) string
- func (bhc *BaseHTTPContext) ParseRequest(req interface{}) error
- func (bhc *BaseHTTPContext) SendErrorResponse(code int, errorText string)
- func (bhc *BaseHTTPContext) SendResponse(code int, response any) error
- func (bhc *BaseHTTPContext) SetHeader(headerName, value string)
- type BindingType
- type Button
- type Card
- type CardItem
- type CardType
- type DefaultPayload
- type GinHTTPContext
- func (gc *GinHTTPContext) GetContext() context.Context
- func (gc *GinHTTPContext) GetHeader(headerName string) string
- func (gc *GinHTTPContext) ParseRequest(req interface{}) error
- func (gc *GinHTTPContext) SendErrorResponse(code int, errorText string)
- func (gc *GinHTTPContext) SendResponse(code int, response any) error
- func (gc *GinHTTPContext) SetHeader(headerName, value string)
- type HTTPContext
- type Interfaces
- type Meta
- type Request
- type RequestIn
- type RequestType
- type Response
- type Screen
- type Session
- type User
- type Webhook
Constants ¶
const ( // OnStart команда запуска скилла. В скилл будет передана пустая строка // Command = "". OnStart = "" // OnInterrupt команда завершении скилла по команде "стоп", "выход" и т.д. в // скилл будет передано Command = "on_interrupt", чтобы у скилла была // возможность попрощаться с пользователем. OnInterrupt = "on_interrupt" )
Типичные команды голосового ввода.
const Version = "1.0"
Version версия протокола.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Application ¶
type Application struct {
// Идентификатор экземпляра приложения, в котором пользователь общается с Марусей (максимум 64 символа).
// Уникален в разрезе: «скилл + приложение (устройство)».
ApplicationID string `json:"application_id"`
// Тип приложения (устройства). Возможные значения:
// • mobile;
// • speaker;
// • VK;
// • other.
ApplicationType ApplicationType `json:"application_type"`
}
Application данные о приложении.
type ApplicationType ¶
type ApplicationType string
ApplicationType тип приложения.
const ( Mobile ApplicationType = "mobile" // мобильное приложение Speaker ApplicationType = "speaker" // колонка VK ApplicationType = "VK" // страница вк Other ApplicationType = "other" // колонка )
Возможные значения.
type BaseHTTPContext ¶
type BaseHTTPContext struct {
Req *http.Request
Resp http.ResponseWriter
}
func (*BaseHTTPContext) GetContext ¶
func (bhc *BaseHTTPContext) GetContext() context.Context
func (*BaseHTTPContext) GetHeader ¶
func (bhc *BaseHTTPContext) GetHeader(headerName string) string
func (*BaseHTTPContext) ParseRequest ¶
func (bhc *BaseHTTPContext) ParseRequest(req interface{}) error
func (*BaseHTTPContext) SendErrorResponse ¶
func (bhc *BaseHTTPContext) SendErrorResponse(code int, errorText string)
func (*BaseHTTPContext) SendResponse ¶
func (bhc *BaseHTTPContext) SendResponse(code int, response any) error
func (*BaseHTTPContext) SetHeader ¶
func (bhc *BaseHTTPContext) SetHeader(headerName, value string)
type BindingType ¶
type BindingType string
BindingType тип для DefaultPayload.
const (
BindingTypeSuggest BindingType = "suggest"
)
Возможные значения.
type Button ¶
type Button struct {
Title string `json:"title"`
Payload interface{} `json:"payload,omitempty"`
URL string `json:"url,omitempty"`
}
Button кнопка.
type Card ¶
type Card struct {
// Тип карточки.
Type CardType `json:"type"`
// Заголовок изображения.
Title string `json:"title"`
// Описание изображения.
Description string `json:"description"`
// ID изображения из раздела "Медиа-файлы" настроек в VKApps
// (игнорируется для типа ItemsList).
ImageID int `json:"image_id,omitempty"`
// Список изображений, каждый элемент является объектом формата BigImage.
Items []CardItem `json:"items,omitempty"`
}
Card описание карточки — сообщения с поддержкой изображений.
func NewBigImage ¶
NewBigImage возвращает карточку с картинкой.
func NewImageList ¶
NewImageList возвращает карточку с набором картинок.
func NewItemsList ¶
NewItemsList возвращает карточку с набором картинок.
type CardItem ¶
type CardItem struct {
// ID изображения из раздела "Медиа-файлы" настроек в VKApps.
ImageID int `json:"image_id"`
}
CardItem элемент карточки.
type DefaultPayload ¶
type DefaultPayload struct {
BindingType BindingType `json:"binding_type"`
Index int `json:"index"`
TargetPhraseID string `json:"target_phrase_id"`
}
DefaultPayload дефолтная нагрузка.
type GinHTTPContext ¶
func (*GinHTTPContext) GetContext ¶
func (gc *GinHTTPContext) GetContext() context.Context
func (*GinHTTPContext) GetHeader ¶
func (gc *GinHTTPContext) GetHeader(headerName string) string
func (*GinHTTPContext) ParseRequest ¶
func (gc *GinHTTPContext) ParseRequest(req interface{}) error
func (*GinHTTPContext) SendErrorResponse ¶
func (gc *GinHTTPContext) SendErrorResponse(code int, errorText string)
func (*GinHTTPContext) SendResponse ¶
func (gc *GinHTTPContext) SendResponse(code int, response any) error
func (*GinHTTPContext) SetHeader ¶
func (gc *GinHTTPContext) SetHeader(headerName, value string)
type HTTPContext ¶
type Interfaces ¶
type Interfaces struct {
// Пользователь может видеть ответ скилла на экране и открывать ссылки
// в браузере.
Screen *Screen `json:"screen,omitempty"`
}
Interfaces интерфейсы, доступные на устройстве пользователя.
func (*Interfaces) IsScreen ¶
func (i *Interfaces) IsScreen() bool
IsScreen пользователь может видеть ответ скилла на экране и открывать ссылки в браузере.
type Meta ¶
type Meta struct {
// Идентификатор клиентского приложения
ClientID string `json:"client_id"`
// Язык в POSIX-формате, максимум 64 символа.
Locale string `json:"locale"`
// Название часового пояса, включая алиасы, максимум 64 символа
Timezone string `json:"timezone"`
// Интерфейсы, доступные на устройстве пользователя.
Interfaces Interfaces `json:"interfaces"`
// Город пользователя на русском языке.
CityRu string `json:"city_ru,omitempty"`
}
Meta информация об устройстве, с помощью которого пользователь общается с Марусей.
type Request ¶
type Request struct {
// Информация об устройстве, с помощью которого пользователь общается с Марусей.
Meta Meta `json:"meta"`
// Данные, полученные от пользователя.
Request RequestIn `json:"request"`
// Данные о сессии.
Session Session `json:"session"`
// Версия протокола.
Version string `json:"version"`
// Служебное поле. Позволяет передать какие-то данные о запросе в обработчик сцен
Context context.Context
}
Request структура запроса.
type RequestIn ¶
type RequestIn struct {
// Служебное поле: запрос пользователя, преобразованный для внутренней
// обработки Марусей. В ходе преобразования текст, в частности, очищается
// от знаков препинания, а числительные преобразуются в числа. При
// завершении скилла по команде "стоп", "выход" и т.д. в скилл будет
// передано "on_interrupt", чтобы у скилла была возможность попрощаться с
// пользователем.
Command string `json:"command"`
// Полный текст пользовательского запроса, максимум 1024 символа.
OriginalUtterance string `json:"original_utterance"`
// Тип ввода.
Type RequestType `json:"type"`
// JSON, полученный с нажатой кнопкой от обработчика скилла (в ответе на
// предыдущий запрос), максимум 4096 байт.
Payload json.RawMessage `json:"payload,omitempty"`
// Объект, содержащий слова и именованные сущности, которые Маруся
// извлекла из запроса пользователя.
NLU language.NLU `json:"nlu"`
}
RequestIn данные, полученные от пользователя.
type RequestType ¶
type RequestType string
RequestType тип ввода.
const ( SimpleUtterance RequestType = "SimpleUtterance" // голосовой ввод ButtonPressed RequestType = "ButtonPressed" // нажатие кнопки )
Возможные значения.
type Response ¶
type Response struct {
// Текст, который следует показать и сказать пользователю. Максимум 1024
// символа. Не должен быть пустым. В тексте ответа можно указать переводы
// строк последовательностью «\n».
Text string `json:"text"`
// Ответ в формате TTS (text-to-speech), максимум 1024 символа.
// Поддерживается расстановка ударений с помощью '+'.
TTS string `json:"tts,omitempty"`
// Кнопки (suggest'ы), которые следует показать пользователю. Кнопки можно
// использовать как релевантные ответу ссылки или подсказки для
// продолжения разговора.
Buttons []Button `json:"buttons,omitempty"`
// Признак конца разговора:
//
// true — сессию следует завершить,
//
// false — сессию следует продолжить.
EndSession bool `json:"end_session"`
// Описание карточки — сообщения с поддержкой изображений.
// Важно! Если указано данное поле, то поле text игнорируется.
Card *Card `json:"card,omitempty"`
}
Response данные для ответа пользователю.
type Session ¶
type Session struct {
// Уникальный идентификатор сессии, максимум 64 символа.
SessionID string `json:"session_id"`
// Идентификатор вызываемого скилла, присвоенный при создании.
// Соответствует полю "Маруся ID" в настройках скилла.
SkillID string `json:"skill_id"`
// Признак новой сессии:
//
// true — пользователь начинает новый разговор с навыком,
//
// false — запрос отправлен в рамках уже начатого разговора.
New bool `json:"new"`
// Идентификатор сообщения в рамках сессии, максимум 8 символов.
// Инкрементируется с каждым следующим запросом.
MessageID int `json:"message_id"`
// Данные об экземпляре приложения.
Application Application `json:"application"`
// Авторизационный токен Маруси.
AuthToken string `json:"auth_token"`
// Данные о пользователе. Передаётся, только если пользователь авторизован.
User User `json:"user,omitempty"`
}
Session данные о сессии.
type User ¶
type User struct {
// Идентификатор аккаунта пользователя (максимум 64 символа). Уникален в разрезе: «скилл + аккаунт».
UserID string `json:"user_id"`
// Идентификатор аккаунта пользователя в ВК, работает только если данное поле было
// включено разработчиками ВК навыков Маруси.
// Не работает в отладки и локально.
UserVKID string `json:"user_vk_id,omitempty"`
}
User данные о пользователе.
type Webhook ¶
Webhook структура.
func (*Webhook) BaseHTTPHandleFunc ¶
func (wh *Webhook) BaseHTTPHandleFunc(w http.ResponseWriter, r *http.Request)
BaseHTTPHandleFunc обработчик http запросов для gin.Context.
func (*Webhook) GinHandleFunc ¶
GinHandleFunc обработчик http запросов для gin.Context.
func (*Webhook) HandleFunc ¶
func (wh *Webhook) HandleFunc(c HTTPContext)
HandleFunc обработчик http запросов.