DS-255 · Всё в одном месте для быстрого тестирования
https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00
X-Auth-Tokendocument.cookie.match(/token=([^;]+)/)[1]
Ожидаем 200 OK
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/calendars', {method:'GET', headers:{'X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/create-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Создай событие", defaultEventDuration:{value:30,unit:"minutes"}, createMeetLink:false, workingHours:[]})}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/cancel-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Отмени событие"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/reschedule', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, prompt:"Перенеси событие"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/default-calendar', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({calendarId:"testchatplacenatalia@gmail.com"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/privacy-consent', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({isActive:true, text:"Политика конфиденциальности", url:"https://example.com/privacy"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/connect-link', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({source:"ai-assistant"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
С тестовым кодом вернёт ошибку — так и должно быть. С настоящим OAuth-кодом от Google — подключит календарь.
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/finish-connect', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:JSON.stringify({code:"invalid_test_code"})}).then(r=>r.text().then(t=>console.log(r.status, t)))
Отправляем пустое тело {} — API должен вернуть 422 со списком пропущенных полей
Обязательные: isActive, defaultEventDuration (value, unit), createMeetLink
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/create-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: isActive, prompt
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/cancel-booking', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: isActive, prompt
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/reschedule', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: calendarId
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/default-calendar', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: isActive, text, url
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/ai-assistant/3bf54dc2-e48b-4bb7-9b32-62d2422d0d88/integrations/019d3f8a-9a4f-7027-9f56-13d64cf19f00/google-calendar/privacy-consent', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: code
С невалидным кодом вернёт ошибку доступа — это ожидаемо
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/finish-connect', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Обязательные: source
fetch('https://api-1764.review.chatplace.io/projects/9414b5c5-ec63-453f-a7a0-f83489b3efac/integrations/google-calendar/connect-link', {method:'POST', headers:{'Content-Type':'application/json','X-Auth-Token': document.cookie.match(/token=([^;]+)/)[1]}, body:'{}'}).then(r=>r.text().then(t=>console.log(r.status, t)))
Для справки — что получили при тестировании 02.04.2026
| # | Endpoint | Метод | Результат | Что вернул |
|---|---|---|---|---|
| 1 | /google-calendar/calendars | GET | 200 OK | Список календарей |
| 2 | /google-calendar/create-booking | POST | 200 OK | Настройки бронирования сохранены |
| 3 | /google-calendar/cancel-booking | POST | 200 OK | Настройки отмены сохранены |
| 4 | /google-calendar/reschedule | POST | 200 OK | Настройки переноса сохранены |
| 5 | /google-calendar/default-calendar | POST | 200 OK | Календарь по умолчанию установлен |
| 6 | /google-calendar/privacy-consent | POST | 200 OK | Согласие сохранено |
| 7 | /integrations/google-calendar/connect-link | POST | 200 OK | Google OAuth URL |
| 8 | /integrations/google-calendar/finish-connect | POST | 422 OK | Корректная ошибка — тестовый код невалиден |