{"id":7802901,"url":"https://github.com/kasitoru/yandex-dialogs-php","last_synced_at":"2025-07-18T01:32:16.403Z","repository":{"id":57068580,"uuid":"164655199","full_name":"kasitoru/yandex-dialogs-php","owner":"kasitoru","description":"PHP библиотека для разработки навыков Яндекс.Алисы","archived":true,"fork":false,"pushed_at":"2023-02-03T09:55:45.000Z","size":109,"stargazers_count":10,"open_issues_count":0,"forks_count":5,"subscribers_count":2,"default_branch":"master","last_synced_at":"2024-08-12T08:09:08.741Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kasitoru.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2019-01-08T13:30:27.000Z","updated_at":"2023-04-11T15:24:53.000Z","dependencies_parsed_at":"2023-02-18T05:31:32.672Z","dependency_job_id":null,"html_url":"https://github.com/kasitoru/yandex-dialogs-php","commit_stats":null,"previous_names":["avdeevsv91/yandex-dialogs-php","thesoultaker48/yandex-dialogs-php"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasitoru%2Fyandex-dialogs-php","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasitoru%2Fyandex-dialogs-php/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasitoru%2Fyandex-dialogs-php/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kasitoru%2Fyandex-dialogs-php/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kasitoru","download_url":"https://codeload.github.com/kasitoru/yandex-dialogs-php/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":226328951,"owners_count":17607705,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-04-12T06:00:47.157Z","updated_at":"2024-11-25T12:30:59.582Z","avatar_url":"https://github.com/kasitoru.png","language":"PHP","funding_links":[],"categories":["Разработка"],"sub_categories":["SDK"],"readme":"# YANDEX-DIALOGS-PHP\n\nPHP библиотека для разработки навыков Яндекс.Алисы\n___\n\n##  Содержание\n\n 1. [История версий / TODO](#todo)\n 2. [Примеры использования](#%D0%BF%D1%80%D0%B8%D0%BC%D0%B5%D1%80%D1%8B)\n 3. [Описание свойств](#%D1%81%D0%B2%D0%BE%D0%B9%D1%81%D1%82%D0%B2%D0%B0)\n \t+ [request](#request) - Содержит информацию о запросе пользователя;\n\t+ [response](#response) - Содержит данные ответа на запрос пользователя;\n\t+ [users_dir](#users_dir) - Имя каталога с данными пользователей;\n\t+ [sentences](#sentences) - Анализировать целые предложения, а не отдельные слова;\n 4. [Описание методов](#%D0%BC%D0%B5%D1%82%D0%BE%D0%B4%D1%8B)\n \t+ [Конструктор](#%D0%BA%D0%BE%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BA%D1%82%D0%BE%D1%80) - Создание объекта класса YandexDialog;\n\t+ [debug](#debug) - Начать сбор отладочной информации;\n\t+ [get_request](#get_request) - Получить информацию о запросе пользователя;\n\t+ [get_template_text](#get_template_text) - Получает часть текста на основе заданных шаблонов;\n\t+ [get_sentence_words](#get_sentence_words) - Разбивает предложение на массив слов;\n\t+ [get_plural_form](#get_plural_form) - Выбор слова с необходимым склонением для числительного;\n\t+ [words_percentage](#words_percentage) - Получить процентное содержание слов в массиве;\n\t+ [compare_words](#compare_words) - Сравнение двух слов на схожесть;\n\t+ [is_new_session](#is_new_session) - Проверка признака старта новой сессии;\n\t+ [is_cmd_start](#is_cmd_start) - Проверка наличия запроса, переданного вместе с командой активации навыка;\n\t+ [bind_new_action](#bind_new_action) - Связывает указанную функцию с событием начала нового диалога (новой сессии);\n\t+ [bind_words_action](#bind_words_action) - Связывает указанную функцию с событием нахождения одного из заданных слов в запросе пользователя;\n\t+ [bind_percentage_action](#bind_percentage_action) - Связывает указанную функцию с событием превышения заданного процентного нахождения слов в запросе пользователя;\n\t+ [bind_sentence_action](#bind_sentence_action) - Связывает указанную функцию с событием превышения (или равенства) заданной процентной схожести предложения;\n\t+ [bind_template_action](#bind_template_action) - Связывает указанную функцию с событием совпадения фразы пользователя и заданного шаблона;\n\t+ [bind_default_action](#bind_default_action) - Связывает указанную функцию с собитием отсутствия других действий;\n\t+ [add_button](#add_button) - Добавляет кнопку в варианты ответа пользователя;\n\t+ [add_message](#add_message) - Добавляет сообщение в список ответов;\n\t+ [get_user_data](#get_user_data) - Получить значение переменной из данных пользователя;\n\t+ [set_user_data](#set_user_data) - Установить значение переменной в данных пользователя;\n\t+ [get_session_data](#get_session_data) - Получить значение переменной из сессии пользователя;\n\t+ [set_session_data](#set_session_data) - Установить значение переменной из сессии пользователя;\n\t+ [end_session](#end_session) - Завершает диалог с пользователем;\n\t+ [use_phpmorphy](#use_phpmorphy) - Включает использование библиотеки phpMorphy;\n\t+ [use_yametrika](#use_yametrika) - Включает использование сервиса Яндекс.Метрика;\n\t+ [yametrika_rgoal](#yametrika_rgoal) - Передача информации о достижении цели в Яндекс.Метрике;\n\t+ [use_chatbase](#use_chatbase) - Включает использование сервиса Google Chatbase;\n\t+ [chatbase_handled](#chatbase_handled) - Устанавливает значение флага handled для Google Chatbase;\n\t+ [finish](#finish) - Производит некоторые подготовительные процедуры и отправляет ответ Яндекс.Диалогам;\n 4. [Встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8)\n 5. [Используемые библиотеки](#%D0%B8%D1%81%D0%BF%D0%BE%D0%BB%D1%8C%D0%B7%D1%83%D0%B5%D0%BC%D1%8B%D0%B5-%D0%B1%D0%B8%D0%B1%D0%BB%D0%B8%D0%BE%D1%82%D0%B5%D0%BA%D0%B8)\n\n___\n## TODO\n| Описание изменений | Дата публикации \n|--|:--:|\n|Первая публичная версия | **08.01.2019**\n|Поддержка сервиса [Google Chatbase](#use_chatbase) | **09.01.2019**\n|[Сохранение](#get_session_data)/[получение](#set_session_data) данных сессии | **05.02.2019**\n|[Сохранение](#set_user_data)/[получение](#get_user_data) данных пользователя | **05.02.2019**\n|Получение части текста по шаблону ([get_template_text](#get_template_text)) | **07.02.2019**\n|Поддержка сервиса [Яндекс.Метрика](#use_yametrika) | **08.02.2019**\n|Морфологический анализ слов с помощью [phpMorphy](#use_phpmorphy) | **20.02.2019**\n|Расширение списка [встроенных тегов](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8) | **в работе**\n|Отправка [сообщений с изображениями](https://tech.yandex.ru/dialogs/alice/doc/resource-upload-docpage/) | ---\n|Поддержка сервиса [AppMetrica](https://appmetrica.yandex.ru/) | ---\n|Поддержка сервиса [Google Analytics](https://analytics.google.com/) | ---\n|Вложенные нелинейные сценарии | ---\n\n## Примеры\nПримеры использования библиотеки находятся в папке [examples](https://github.com/avdeevsv91/yandex-dialogs-php/tree/master/examples).\n\n## Свойства\nНе рекомендуется прямое изменение свойств объектов класса YandexDialog. Делайте это через соответствующие методы.\n\n### request\nСодержит информацию о запросе пользователя. Более подробно можно почитать в [официальной документации](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#request) к протоколу.\n\n### response\nСодержит данные ответа на запрос пользователя. Более подробно можно почитать в [официальной документации](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#response) к протоколу.\n\n### users_dir\nИмя каталога, содержащего файлы с данными пользователей (см. [get_user_data](#get_user_data) и [set_user_data](#set_user_data)). Строка. По умолчанию: 'users'.\n\n## Методы\n\n### Конструктор\n\n`public function __construct(string $version='1.0')`\n\nСоздание объекта класса YandexDialog.\n\n`$version` - Номер используемой версии протокола. Строка. Не обязательно. По умолчанию: '1.0'.\n\n\t$alice = new YandexDialog('1.0');\n\n### debug\n\n`public function debug()`\n\nНачинает сбор отладочной информации (время выполнения скрипта, потребляемая память и др.), просмотреть которую можно в кабинете разработчика [Яндекс.Диалоги](https://dialogs.yandex.ru), раздел \"Тестирование\" (блок \"Последний запрос\").\n\n### get_request\n\n`public function get_request(array $data=null): bool`\n\nПолучить информацию о запросе пользователя.\n\n`$data` - Данные запроса пользователя. Многомерный массив ([см.тут](https://tech.yandex.ru/dialogs/alice/doc/protocol-docpage/#request)). Не обязательно. По умолчанию: декодированный json из php://input.\n\n\t$alice-\u003eget_request();\n\n### get_template_text\n\n`public function get_template_text(array $patterns, string $text=null): array`\n\nПолучает часть текста на основе заданных шаблонов. Метод возвращает ассоциативный массив, в котором в качестве ключей выступают имена паттернов, а значения заполнены найденными результатами. Если поиск не удался (оригинальный текст не подходит под указанные шаблоны, либо шаблоны составлены с ошибкой), то метод возвращает false.\n\n`$patterns` - Массив шаблонов поиска. Подробнее в примерах ниже. Массив. Обязательный параметр.\n\n`$text` - Текст, в котором осуществляется поиск. Строка. Не обязательно. По-умолчанию: текст команды пользователя.\n\n\t$text = 'Меня зовут Иван Иванов. Мне сейчас 25 лет.';\n\t\n\t$name = $alice-\u003eget_template_text(['Меня зовут {name1:word}', 'Мое имя {name1:word}'], $text); // ['name1' =\u003e 'Иван']\n\t// Если шаблон один, то можно передавать его строкой\n\t$name = $alice-\u003eget_template_text('Меня зовут {name1:word}', $text); // ['name1' =\u003e 'Иван']\n\t$name = $alice-\u003eget_template_text('Меня зовут {name2}.', $text); // ['name2' =\u003e 'Иван Иванов']\n\t$age = $alice-\u003eget_template_text('Мне {*}{age:int} лет', $text); // ['age' =\u003e 25]\n\t$matches = $alice-\u003eget_template_text('Меня зовут {name:word}{*}Мне {*}{age:int} лет', $text); // ['name' =\u003e 'Иван', 'age' =\u003e 25]\n\t$results = $alice-\u003eget_template_text('{Меня зовут|Мое имя} {*}', $text); // []\n\t$results = $alice-\u003eget_template_text('Привет! {*}', $text); // false\n\n### get_sentence_words\n\n`public function get_sentence_words(string $text): array`\n\nРазбивает предложение на массив слов в нижнем регистре.\n\n`$text` - Исходный текст. Строка. Обязательный параметр;\n\n\t$words = $alice-\u003eget_sentence_words('Привет! Меня зовут Иван.'); // ['привет', 'меня', 'зовут', 'иван']\n\n### get_plural_form\n\n`public function get_plural_form(int $number, array $words): string`\n\nВыбирает слово с необходимым склонением для указанного числительного из массива вариантов.\n\n`$number` - Целое число, для которого необходимо подобрать слово снужным склонением. Обязательный параметр;\n\n`$words` - Массив слов для выбора. Три элемента, соответствующие числам 1, 2 и 5. Обязательный параметр;\n\n\t$number = 3;\n\t\n\techo $number . ' ' . $alice-\u003eget_plural_form($number, ['арбуз', 'арбуза', 'арбузов']); // 3 арбуза\n\n### words_percentage\n\n`public function words_percentage(array $words, array $tokens): int`\n\nПолучить процентное содержание указанных слов в переданном массиве. Регистр не учитывается.\n\n`$words` - Слова для поиска. Элементы так же могут быть массивами - в таком случае любое из совпадений внутри вложенного массива считается как совпадение всего массива. Массив. Обязательный параметр;\n\n`$tokens` - Строки для сравнения. Массив. Обязательный параметр;\n\n\t$percentage = $alice-\u003ewords_percentage([['раз', 'один'], 'два', 'три'], ['три', 'четыре', 'пять']); // ~33%\n\t\n### compare_words\n\n`public function compare_words(string $first, string $second): bool`\n\nСравнивает два слова. Регистр не учитывается.\n\n`$first` - Первое слово для сравнения. Строка. Обязательный параметр;\n\n`$second` - Второе слово для сравнения. Строка. Обязательный параметр;\n\n\tif($alice-\u003ecompare_words('ПрИвЕт', 'привет')) { // true\n\t\t...\n\t}\n\n### is_new_session\n\n`public function is_new_session(): bool`\n\nМетод возвращает true, если текущий запрос является началом новой сессии.\n\n\tif($alice-\u003eis_new_session()) {\n\t\t...\n\t}\n\n### is_cmd_start\n\n`public function is_cmd_start(): bool`\n\nМетод возвращает true, если вместе с командой активации навыка был передан запрос. Команды активации, с которыми рекомендуется передавать такие запросы: «скажи», «попроси», «узнай у» и «спроси у».\n\n\tif($alice-\u003eis_cmd_start()) {\n\t\t...\n\t}\n\n### bind_new_action\n\n`public function bind_new_action(string $action): bool`\n\nСвязывает указанную функцию с событием начала нового диалога (новой сессии). В вызываемую функцию передается указатель на $this.\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction new_session_action($alice) {\n\t\t...\n\t\tsome code\n\t\t...\n\t}\n\t$alice-\u003ebind_new_action('new_session_action');\n\n### bind_words_action\n\n`public function bind_words_action(array $words, string $action): bool`\n\nСвязывает указанную функцию с событием нахождения одного из заданных слов в запросе пользователя. В вызываемую функцию передается указатель на $this и массив обнаруженных слов.\n\n`$words` - Слова для поиска (в нижнем регистре). Массив. Обязательный параметр;\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction find_word_action($words, $alice) {\n\t\t...\n\t\tsome code\n\t\t...\n\t}\n\t$alice-\u003ebind_words_action(['яблоко', 'груша', 'апельсин'], 'find_word_action');\n\n### bind_percentage_action\n\n`public function bind_percentage_action(array $words, int $percentage, string $action): bool`\n\nСвязывает указанную функцию с событием превышения (или равенства) заданного процентного нахождения слов в запросе пользователя. Регистр не учитывается. В вызываемую функцию передается указатель на $this и найденное процентное значение.\n\n`$words` - Слова для поиска. Элементы так же могут быть массивами - в таком случае любое из совпадений внутри вложенного массива считается как совпадение всего массива. Массив. Обязательный параметр;\n\n`$percentage` - Процентное значение, при достижении которого выполняется указанная функция. Число. Обязательный параметр;\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction percentage_word_action($percent, $alice) {\n\t\t...\n\t\tsome code\n\t\t...\n\t}\n\t$alice-\u003ebind_percentage_action([['яблоко', 'груша'], 'апельсин'], 75, 'percentage_word_action');\n\n### bind_sentence_action\n\n`public function bind_sentence_action(string $text, int $percentage, string $action): bool`\n\nСвязывает указанную функцию с событием превышения (или равенства) заданной процентной схожести предложения. В вызываемую функцию передается указатель на $this и найденное процентное значение. В зависимости от значения свойства [sentences](#sentences) метод либо анализирует предложения целиком, либо разбивает их на отдельные слова и производит сравнение каждого из них.\n\n`$text` - Предложение для сравнения схожести. Строка. Обязательный параметр;\n\n`$percentage` - Процентное значение, при достижении которого выполняется указанная функция. Число. Обязательный параметр;\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction suggestion_action($percent, $alice) {\n\t\t...\n\t\tsome code\n\t\t...\n\t}\n\t$alice-\u003ebind_sentence_action('Очистить список покупок', 75, 'suggestion_action');\n\n### bind_template_action\n\n`public function bind_template_action(array $patterns, string $action): bool`\n\nСвязывает указанную функцию с событием совпадения фразы пользователя и заданного шаблона. В вызываемую функцию передается указатель на $this и ассоциативный массив, в котором в качестве ключей выступают имена паттернов, а значения заполнены найденными результатами.\n\n`$patterns` - Массив шаблонов поиска. Подробнее см. в описании метода [get_template_text](#get_template_text). Массив. Обязательный параметр.\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction template_action($patterns, $alice) {\n\t\t...\n\t\t// $patterns['name'] будет содержать названное пользователем имя\n\t\t...\n\t}\n\t$alice-\u003ebind_template_action(['Меня зовут {name:word}', 'Мое имя {name:word}'], 'template_action');\n\n### bind_default_action\n\n`public function bind_default_action(string $action): bool`\n\nСвязывает указанную функцию с собитием отсутствия других действий. Отлично подходит для обработки ситуаций, когда фраза пользователя не распознана. В вызываемую функцию передается указатель на $this.\n\n`$action` - Имя функции, которой необходимо передавать управление. Строка. Обязательный параметр.\n\n\tfunction default_action($alice) {\n\t\t...\n\t\tsome code\n\t\t...\n\t}\n\t$alice-\u003ebind_default_action('default_action');\n\n### add_button\n\n`public function add_button(string $title, string $url=null, array $payload=null, bool $hide=false): bool`\n\nДобавляет кнопку в варианты ответа пользователя.\n\n`$title` - Текст кнопки, который будет отправлен навыку по ее нажатию. Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Строка. Обязательный параметр;\n\n`$url` - URL, который должна открывать кнопка. Строка. Не обязательно. По-умолчанию: null.\n\n`$payload` - Произвольные данные, которые Яндекс.Диалоги должны отправить обработчику, если данная кнопка будет нажата. Массив. Не обязательно. По-умолчанию: null.\n\n`$hide` - Признак того, что кнопку нужно убрать после следующей реплики пользователя. Логическое. Не обязательно. По-умолчанию: false.\n\n\t$alice-\u003eadd_button('Открой Яндекс', 'http://yandex.ru');\n\t$alice-\u003eadd_button('Сделать заказ', null, ['item' =\u003e 42, 'price' =\u003e 100], true);\n\n### add_message\n\n`public function add_message(string $message, string $tts=null): bool`\n\nДобавляет сообщение в список ответов. Перед отправкой автоматически выбирается один случайный вариант.\n\n`$message` - Текст сообщения для отправки. Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Строка. Обязательный параметр;\n\n`$tts` - Текстовое TTS представление для отзвучивания сообщения ([см.тут](https://tech.yandex.ru/dialogs/alice/doc/speech-tuning-docpage/#speech-tuning)). Могут использоваться [встроенные теги](#%D0%B2%D1%81%D1%82%D1%80%D0%BE%D0%B5%D0%BD%D0%BD%D1%8B%D0%B5-%D1%82%D0%B5%D0%B3%D0%B8). Можно использовать [звуки](https://tech.yandex.ru/dialogs/alice/doc/sounds-docpage/). Строка. Не обязательно. По-умолчанию: $message.\n\n\t$alice-\u003eadd_message('Среди этих двух сообщений');\n\t$alice-\u003eadd_message('Будет выбрано только одно', 'уже выбрано только одно');\n\n### get_user_data\n\n`public function get_user_data(string $name): string`\n\nПолучить значение переменной из данных пользователя.\n\n`$name` - Имя переменной, значение которой необходимо получить. Строка. Обязательный параметр;\n\n\t$user_name = $alice-\u003eget_user_data('name');\n\n### set_user_data\n\n`public function set_user_data(string $name, mixed $value): bool`\n\nУстановить значение переменной в данных пользователя.\n\n`$name` - Имя переменной, значение которой необходимо установить. Строка. Обязательный параметр;\n\n`$value` - Значение переменной, которое необходимо установить. Если задать null, то переменная удалится. Любой тип. Обязательный параметр;\n\n\t$alice-\u003eset_user_data('name', 'Иван');\n\t$alice-\u003eset_user_data('items', ['Яблоки', 'Бананы', 'Молоко']);\n\t$alice-\u003eset_user_data('notes', null);\n\n### get_session_data\n\n`public function get_session_data(string $name): string`\n\nПолучить значение переменной из сессии пользователя.\n\n`$name` - Имя переменной, значение которой необходимо получить. Строка. Обязательный параметр;\n\n\t$action = $alice-\u003eget_session_data('action');\n\n### set_session_data\n\n`public function set_session_data(string $name, mixed $value): bool`\n\nУстановить значение переменной из сессии пользователя.\n\n`$name` - Имя переменной, значение которой необходимо установить. Строка. Обязательный параметр;\n\n`$value` - Значение переменной, которое необходимо установить. Если задать null, то переменная удалится. Любой тип. Обязательный параметр;\n\n\t$alice-\u003eset_session_data('action', 'start');\n\t$alice-\u003eset_session_data('progress', ['step' =\u003e 2, 'place' =\u003e 'home']);\n\t$alice-\u003eset_session_data('items', null);\n\n### end_session\n\n`public function end_session(): bool`\n\nЗавершает диалог с пользователем.\n\n\t$alice-\u003eend_session();\n\n### use_phpmorphy\n\n`public function use_phpmorphy(string $dicts_dir, string $language='ru_RU')`\n\nВключает использование библиотеки [phpMorphy](http://phpmorphy.sourceforge.net/). Вы так же можете самостоятельно вызывать нативные методы библиотеки, использовав в качестве объекта phpMorphy свойство $alice-\u003ephpmorphy. Данную функцию можно отключить в любой момент, присвоив свойству $alice-\u003ephpmorphy значение null.\n\n`$dicts_dir` - Путь к каталогу со словарями. Строка. Обязательный параметр.\n\n`$language` - Язык, для которого будем использовать словарь. Указывается как ISO3166 код страны и ISO639 код языка, разделенные символом подчеркивания (ru_RU, uk_UA, en_EN, de_DE и т.п.). Строка. Не обязательно. По-умолчанию: \"ru_RU\".\n\n\t$alice-\u003euse_phpmorphy('vendor/umisoft/phpmorphy/dicts/');\n\n### use_yametrika\n\n`public function use_yametrika(string $counter_id)`\n\nВключает использование сервиса [Яндекс.Метрика](https://metrika.yandex.ru/). Данные передаются в момент вызова метода [finish](#finish).\n\n`$counter_id` - ID счетчика, полученный в личном кабинете сервиса. Строка. Обязательный параметр.\n\n\t$alice-\u003euse_yametrika('YOU_COUNTER_ID');\n\n### yametrika_rgoal\n\n`public function yametrika_rgoal(string $target): bool`\n\nПередача информации о достижении цели в Яндекс.Метрике. Более подробно читайте в [официальной документации сервиса](https://yandex.ru/support/metrika/general/goal-js-event.html#js-event).\n\n`$target` - Идентификатор цели. Строка. Обязательный параметр.\n\n\t$alice-\u003eyametrika_rgoal('my_target');\n\n### use_chatbase\n\n`public function use_chatbase(string $api_key)`\n\nВключает использование сервиса [Google Chatbase](https://chatbase.com/). Данные передаются в момент вызова метода [finish](#finish).\n\n`$api_key` - API ключ, полученный в личном кабинете сервиса. Строка. Обязательный параметр.\n\n\t$alice-\u003euse_chatbase('YOU_CHATBASE_API_KEY');\n\n### chatbase_handled\n\n`public function chatbase_handled(bool $handled=true): bool`\n\nУстанавливает значение флага handled для Google Chatbase. Этим способом рекомендуется \"маркировать\" те ситуации, когда запрос пользователя не распознан или привел к ошибке. Если не вызывать этот метод, то считается что handled = false.\n\n`$handled` - Значение, которое необходимо установить для handled. Логическое. Не обязательно. По-умолчанию: true.\n\n\t$alice-\u003echatbase_handled();\n\n### finish\n\n`public function finish(bool $return=false): bool`\n\nПроизводит некоторые подготовительные процедуры и отправляет ответ Яндекс.Диалогам.\n\n`$return` - Возвратить ответ (вместо вывода на экран). Логическое. Не обязательно. По-умолчанию: false.\n\n\t$alice-\u003efinish();\n\n## Встроенные теги\n\nНекоторые методы (например такие как [add_button](#add_button) и [add_message](#add_message)) позволяют использовать встроенные теги:\n\n`[слово1|слово2|...|словоN]` - Выбрать одну строку случайным образом среди перечисленных;\n\n`[date:format]` - Текущая дата/время в формате format (см. подробнее в описании PHP функции [date()](http://php.net/manual/ru/function.date.php));\n\n## Используемые библиотеки\n\nphpMorphy: https://github.com/Umisoft/phpmorphy\n\nChatbase PHP: https://gitlab.com/bhavyanshu/chatbase-php\n\nServer YaMetrika (форк): https://github.com/avdeevsv91/server_yametrika\n\nCRC (by Philip Burggraf): https://github.com/pburggraf/CRC\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasitoru%2Fyandex-dialogs-php","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkasitoru%2Fyandex-dialogs-php","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkasitoru%2Fyandex-dialogs-php/lists"}