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)
- func (bhc *BaseHttpContext) SetHeader(headerName string, 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)
- func (gc *GinHttpContext) SetHeader(headerName string, 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)
func (*BaseHttpContext) SetHeader ¶
func (bhc *BaseHttpContext) SetHeader(headerName string, 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)
func (*GinHttpContext) SetHeader ¶
func (gc *GinHttpContext) SetHeader(headerName string, 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 запросов.