Documentation ¶
Index ¶
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 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"` }
Card описание карточки — сообщения с поддержкой изображений.
func NewBigImage ¶
NewBigImage возвращает карточку с картинкой.
type DefaultPayload ¶
type DefaultPayload struct { BindingType BindingType `json:"binding_type"` Index int `json:"index"` TargetPhraseID string `json:"target_phrase_id"` }
DefaultPayload дефолтная нагрузка.
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"` }
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 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"` // Идентификатор экземпляра приложения, в котором пользователь общается с // Марусей, максимум 64 символа. UserID string `json:"user_id"` // Идентификатор вызываемого скилла, присвоенный при создании. // Соответствует полю "Маруся ID" в настройках скилла. SkillID string `json:"skill_id"` // Признак новой сессии: // // true — пользователь начинает новый разговор с навыком, // // false — запрос отправлен в рамках уже начатого разговора. New bool `json:"new"` // Идентификатор сообщения в рамках сессии, максимум 8 символов. // Инкрементируется с каждым следующим запросом. MessageID int `json:"message_id"` }
Session данные о сессии.
type Webhook ¶
type Webhook struct {
// contains filtered or unexported fields
}
Webhook структура.
func (*Webhook) HandleFunc ¶
HandleFunc обработчик http запросов.