Страница 29 из 38
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 4:54 pm
fandaymon
Yashalta писал(а): Пт дек 14, 2018 4:49 pm
fandaymon писал(а): Пт дек 14, 2018 1:10 pm
Скрипт записывается в Actions модуля Api.Ai. Надо чтобы этот интент отработал, тогда в списке Actions появляется Add_Event с параметрами. Нажимая карандашик можно отредактировать, что именно он будет делать - именно туда надо скопировать мой скрипт.
Сделал так как Вы описали выше! Интент отработал и в списке Actions появился Add_Event далее нажал на карандашик и добавил Ваш скрипт! После положил фаил на Raspberry где у меня MajorDomo живет, по этому пути как у Вас /home/pi/Desktop/
zerg_secret.json и так же в скрипте поправил эту строчку на свое значение
Код: Выделить всё
putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/zerg_secret.json');
Снова тестирую и получаю это в новом окне браузера
Код: Выделить всё
Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Такое ощущение что просит какой то модуль?!?!
Просит не модуль, а пакет google-api-php-client
https://github.com/googleapis/google-api-php-client
То что там находится в директории Google надо скачать к себе в /var/www/Google
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 8:22 pm
Yashalta
Я сделал скрин того, что делал

под цифрой 1 - это я показал, что скачал архив
google-api-php-client-master.zip от сюда
https://github.com/googleapis/google-api-php-client
на raspbery где живет у меня MajorDomo я создал папку /var/www/
Google
Под цифрой 2 -показал, что содержимое архива
google-api-php-client-master.zip я скопировал на Rassberry в папку /var/www/
Google
Снова попробовал и результат тот же!
Код: Выделить всё
Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Перезагрузил Raspberry попробовал снова и результат прежний.
Тогда я посмотрел права на созданную мною папку /var/www/
Google и вот что оно показало
Код: Выделить всё
drwxr-xr-x 2 root root 3488 Dec 14 19:29 Google
Возможно нужно дать права пользователю "pi"?
Вопрос: У меня есть голосовые команды "Шаблоны поведения" и они полностью игнорируются системой! Все мои голосовые команды контролироваться при помощи модуля API.AI Можно ли реализовать что бы модуль API.AI работал только с теми голосовыми командами которые в нем прописаны и не трогать мои "Шаблоны поведения"?
Или тут нужно сделать выбор между "Шаблонами поведения" и Модулем API.AI?
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 9:37 pm
fandaymon
Yashalta писал(а): Пт дек 14, 2018 8:22 pm
Я сделал скрин того, что делал

под цифрой 1 - это я показал, что скачал архив
google-api-php-client-master.zip от сюда
https://github.com/googleapis/google-api-php-client
на raspbery где живет у меня MajorDomo я создал папку /var/www/
Google
Под цифрой 2 -показал, что содержимое архива
google-api-php-client-master.zip я скопировал на Rassberry в папку /var/www/
Google
Снова попробовал и результат тот же!
Код: Выделить всё
Warning: require_once(./Google/vendor/autoload.php): failed to open stream: No such file or directory in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Fatal error: require_once(): Failed opening required './Google/vendor/autoload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /var/www/modules/apiai/apiai.class.php(663) : eval()'d code on line 4
Перезагрузил Raspberry попробовал снова и результат прежний.
Тогда я посмотрел права на созданную мною папку /var/www/
Google и вот что оно показало
Код: Выделить всё
drwxr-xr-x 2 root root 3488 Dec 14 19:29 Google
Возможно нужно дать права пользователю "pi"?
Вопрос: У меня есть голосовые команды "Шаблоны поведения" и они полностью игнорируются системой! Все мои голосовые команды контролироваться при помощи модуля API.AI Можно ли реализовать что бы модуль API.AI работал только с теми голосовыми командами которые в нем прописаны и не трогать мои "Шаблоны поведения"?
Или тут нужно сделать выбор между "Шаблонами поведения" и Модулем API.AI?
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php
У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 10:01 pm
Yashalta
fandaymon писал(а): Пт дек 14, 2018 9:37 pm
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php
У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
Поправил пути в скрипте и сейчас "работает"! Теперь нужно потренировать на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание с этим пока у меня проблема!
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 10:59 pm
fandaymon
Yashalta писал(а): Пт дек 14, 2018 10:01 pm
fandaymon писал(а): Пт дек 14, 2018 9:37 pm
Надо было папку Гугл скопировать в папку Гугл. Ну или прописать в include правильный путь до файла autoload.php
У меня в файле исправлено, чтобы шаблоны вызывались раньше всего остального, поскольку в ранних версиях это нельзя было сделать настройками. Сейчас, кажется, в версии альфа можно расставить нужный порядок для вызова шаблонов, api.ai, простых устройств. Я не пробовал, поскольку не обновляю версию МДМ
Поправил пути в скрипте и сейчас "работает"! Теперь нужно потренировать на нескольких фразах, так чтобы бралась обязательная дата, необязательное время, а всё что после - в само напоминание с этим пока у меня проблема!
Отлично!

У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале
Код: Выделить всё
if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
$params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
$params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
Re: [Модуль] API.AI (apiai)
Добавлено: Пт дек 14, 2018 11:42 pm
Yashalta
fandaymon писал(а): Пт дек 14, 2018 10:59 pm
Отлично!

У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале
Код: Выделить всё
if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
$params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
$params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
Спасибо, добавил ваше дополнение в код! Но, я думаю, что то, где то я накосячил!
Сделал "наброски" голосовых команд и в результате модуль меня "ведет" в диалоге но, не записывает в календарь! Я проверял как в самом Gogole календаре так и в модуле на MajorDomо. Ничего ни где не добавляется!
Хотя все должно работать!
Код: Выделить всё
{
"id": "6c1fae29-d6ac-4d48-87fd-cc5fa71598ab",
"timestamp": "2018-12-14T20:30:24.476Z",
"lang": "ru",
"result": {
"source": "agent",
"resolvedQuery": "Купить нужно хлеб!",
"action": "",
"actionIncomplete": false,
"parameters": {
"Event_Desc": "Купить нужно хлеб",
"Event_Time": "18:19:00",
"Event_Date": "2018-12-23"
},
"contexts": [],
"metadata": {
"intentId": "3c92b935-c9e0-44f2-9a0b-b8e9df32fbfc",
"webhookUsed": "false",
"webhookForSlotFillingUsed": "false",
"isFallbackIntent": "false",
"intentName": "Add_Event"
},
"fulfillment": {
"speech": "Все записала!",
"messages": [
{
"type": 0,
"speech": "Заметка добавлена!"
}
]
},
"score": 1
},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": ".5c10d8c32cb8b"
}

Куда копать уму не приложу!

Re: [Модуль] API.AI (apiai)
Добавлено: Сб дек 15, 2018 12:07 am
fandaymon
Yashalta писал(а): Пт дек 14, 2018 11:42 pm
fandaymon писал(а): Пт дек 14, 2018 10:59 pm
Отлично!

У меня 14 фраз забито - вроде работает без сбоев
Ещё добавил в скрипт, в начале
Код: Выделить всё
if ($params['Event_Time']=='' and (int)substr($params['Event_Date'],0,4)<2018) {
$params['Event_Time']=substr($params['Event_Date'],0,2) . ':' . substr($params['Event_Date'],2,2);
$params['Event_Date']='2018' . substr($params['Event_Time'],4);
}
а то иногда api.ai путало дату и время...
Спасибо, добавил ваше дополнение в код! Но, я думаю, что то, где то я накосячил!
Сделал "наброски" голосовых команд и в результате модуль меня "ведет" в диалоге но, не записывает в календарь! Я проверял как в самом Gogole календаре так и в модуле на MajorDomо. Ничего ни где не добавляется!
Хотя все должно работать!
Код: Выделить всё
{
"id": "6c1fae29-d6ac-4d48-87fd-cc5fa71598ab",
"timestamp": "2018-12-14T20:30:24.476Z",
"lang": "ru",
"result": {
"source": "agent",
"resolvedQuery": "Купить нужно хлеб!",
"action": "",
"actionIncomplete": false,
"parameters": {
"Event_Desc": "Купить нужно хлеб",
"Event_Time": "18:19:00",
"Event_Date": "2018-12-23"
},
"contexts": [],
"metadata": {
"intentId": "3c92b935-c9e0-44f2-9a0b-b8e9df32fbfc",
"webhookUsed": "false",
"webhookForSlotFillingUsed": "false",
"isFallbackIntent": "false",
"intentName": "Add_Event"
},
"fulfillment": {
"speech": "Все записала!",
"messages": [
{
"type": 0,
"speech": "Заметка добавлена!"
}
]
},
"score": 1
},
"status": {
"code": 200,
"errorType": "success"
},
"sessionId": ".5c10d8c32cb8b"
}

Куда копать уму не приложу!
Надо смотреть что и как настроено - должно быть 2 акаунта гугла - основной (например
[email protected]) и служебный (blabla@verdant-bulwark....). В основном календаре Васи Пупкина должен быть включен доступ для служебного (Внесение изменений и предоставление доступа)
В самом скрипте в строчке
$calendarId = '
[email protected]'; // Тут надо поставить свой адрес
должен стоять адрес основного экаунта (т.е.
[email protected])
Ну и если всё настроено правильно, а не работает, то можно сделать Новый сценарий, скопировать туда весь код, забить вместо параметров какие-нибудь дату, время и описание и при помощи echo выводить на экран что происходит в скрипте - есть ли доступ к джейсену с креденшенами, есть ли доступ к календарю и т.д.
Re: [Модуль] API.AI (apiai)
Добавлено: Пн мар 25, 2019 5:29 pm
Kvantos
Есть маленькие пожелания для удобства работы с модулем:
1. Помечать в списке Actions (можно цветом), которые содержат в себе пользовательские обработчики (код) + добавить сортировку по этому признаку
2. При попытке удаления Actions, содержащие пользовательские обработчики - выводить в запрос на подтверждение удаления так-же БОЛЬШИМИ красными буквами, что там есть пользовательский код, а то можно случайно делов натворить... ))
П,С, Уверен, что это намного повысит юзабилити модуля и спасет нервы пользователям, которые сначала удаляют, а потом вспоминают, что там было ))
Re: [Модуль] API.AI (apiai)
Добавлено: Пт апр 19, 2019 3:35 pm
kosem
Подскажите, пожалуйста!
Сообщения от апи.аи приходят, но тут же "Неизвестная команда..." и именно это Алиса и произносит.
В ThisComputer->commandReceived->Методы все удалил, CONNECT отключил.
Надо еще что-то где-то почистить?
Подскажите еще)) Как озвучить ответы от Small Talk?
Re: [Модуль] API.AI (apiai)
Добавлено: Пт апр 19, 2019 9:56 pm
nick7zmail
Плохо почистили. Проверьте как метод объекта, так и классовый метод.