Re: Модуль API.AI
Добавлено: Вт фев 13, 2018 2:35 pm
Значит, вечером правим код.
С русским - нет. И в ближайшее время не обещают. К тому же ключевая фраза OK Google как-то не очень подходит для общения с умным домомvitt76 писал(а):А Google assistant не работает пока?
делись кодом )fandaymon писал(а): Ну и совершенно зря... Для некоторых применений API.AI очень удобен. Например, я с его помощью реализовал добавление голосом в гугл календарь разных мероприятий
Говоришь, например Добавь напоминание в среду в 17:00 встреча или Добавь напоминание Завтра День рождения или Добавь напоминание на 30 марта в десять Отправить показания, а модуль возвращает тебе дату,время и текст напоминания, остаётся только добавить в календарь. Да, конечно, всё это можно сделать и шаблонами, но придётся помучиться...
Скачал на https://github.com/google/google-api-php-client файл, распаковал его в директорию Google в корне веб-сервера. В lib не стал помещать, так как там старая гугловская библиотека от модуля Ивана.Gelezako писал(а):делись кодом )fandaymon писал(а): Ну и совершенно зря... Для некоторых применений API.AI очень удобен. Например, я с его помощью реализовал добавление голосом в гугл календарь разных мероприятий
Говоришь, например Добавь напоминание в среду в 17:00 встреча или Добавь напоминание Завтра День рождения или Добавь напоминание на 30 марта в десять Отправить показания, а модуль возвращает тебе дату,время и текст напоминания, остаётся только добавить в календарь. Да, конечно, всё это можно сделать и шаблонами, но придётся помучиться...
Код: Выделить всё
// $params['Event_Date']
// $params['Event_Desc']
// $params['Event_Time']
require_once './Google/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json');
$client = new Google_Client();
$event_desc=$params['Event_Desc'];
$client->useApplicationDefaultCredentials();
$client->setApplicationName(‘TestCalendarAPI’);
$client->setScopes('https://www.googleapis.com/auth/calendar');
$service = new Google_Service_Calendar($client);
$calendarId = 'mail@gmail.com'; // Тут надо поставить свой адрес
if ($params['Event_Time']=='') {
$event = new Google_Service_Calendar_Event(array(
'summary' => $event_desc,
'location' => '',
'description' => '',
'start' => array(
'date' => $params['Event_Date'],
'timeZone' => 'Europe/Riga',
),
'end' => array(
'date' => $params['Event_Date'],
'timeZone' => 'Europe/Riga',
),
'attendees' => array(
array('email' => 'mail@gmail.com'),
),
'reminders' => array(
'useDefault' => FALSE,
'overrides' => array(
array('method' => 'email', 'minutes' => 24 * 60),
array('method' => 'popup', 'minutes' => 10),
),
),
));
}
else {
$event = new Google_Service_Calendar_Event(array(
'summary' => $event_desc,
'location' => '',
'description' => '',
'start' => array(
'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'],
'timeZone' => 'Europe/Riga',
),
'end' => array(
'dateTime' => $params['Event_Date'] . 'T' . $params['Event_Time'],
'timeZone' => 'Europe/Riga',
),
'attendees' => array(
array('email' => 'mail@gmail.com'),
),
'reminders' => array(
'useDefault' => FALSE,
'overrides' => array(
array('method' => 'email', 'minutes' => 24 * 60),
array('method' => 'popup', 'minutes' => 10),
),
),
));
}
$event = $service->events->insert($calendarId, $event);
Код: Выделить всё
require_once './Google/vendor/autoload.php';
putenv('GOOGLE_APPLICATION_CREDENTIALS=/home/pi/Desktop/sarah-home-calendar.json');
$client = new Google_Client();
$client->useApplicationDefaultCredentials();
$client->setApplicationName(‘TestCalendarAPI’);
$client->setScopes('https://www.googleapis.com/auth/calendar');
$service = new Google_Service_Calendar($client);
$calendarId = 'lv.latvian#holiday@group.v.calendar.google.com';
$optParams = array(
'maxResults' => 10,
'orderBy' => 'startTime',
'singleEvents' => TRUE,
'timeMin' => date('c'),
'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00',
);
$results = $service->events->listEvents($calendarId, $optParams);
$today_events='';
if (count($results->getItems()) == 0) {
} else {
foreach ($results->getItems() as $event) {
$start = $event->start->dateTime;
if (empty($start)) {
$start='';
}
else {
$start=date_format(date_create($start),'H:i');
}
$today_events.=$start . ' ' . holidaysru($event->getSummary()) . '. ';
}
}
$calendarId = 'mail@gmail.com';
$optParams = array(
'maxResults' => 10,
'orderBy' => 'startTime',
'singleEvents' => TRUE,
'timeMin' => date('c'),
'timeMax' => date('Y-m-d',strtotime('tomorrow')) .'T00:00:00+02:00',
);
$results = $service->events->listEvents($calendarId, $optParams);
if (count($results->getItems()) == 0) {
} else {
foreach ($results->getItems() as $event) {
$start = $event->start->dateTime;
if (empty($start)) {
$start='';
}
else {
$start=date_format(date_create($start),'H:i');
}
$today_events.=$start . ' ' . $event->getSummary() . '. ';
}
}
if ($today_events<>'') {
$hello.='Сегодня: ' . $today_events;
}
Я встроенной интеграции в api.ai, с ходу не разобрался что там надо сделать.fandaymon писал(а):С русским - нет. И в ближайшее время не обещают. К тому же ключевая фраза OK Google как-то не очень подходит для общения с умным домомvitt76 писал(а):А Google assistant не работает пока?
возникает устойчивое непонимание происходящего...
Set the Action to question.location
...
Тут объясняется доходчиво и по русски, есть и про контексты.Denis_k писал(а):Камрады, а кто нибудь может подсказать как в обсуждаемом сервисе переключаются контексты?...