Integracja opiera się na konektorze typu alert/google_chat (Connect::Connector::Service::GoogleChat). Apka Noe google-chat-integration (svelte) tworzy i zarządza konektorami na koncie.
Pola konektora
| Pole | Wymagane | Opis |
|---|---|---|
url |
tak | Host - zawsze https://chat.googleapis.com
|
secret_token |
tak | Token z URL-a webhooka (parametr token) |
fields.room |
tak | Identyfikator pokoju (segment /spaces/{room}/ z URL-a) |
fields.key |
tak | Parametr key z URL-a webhooka |
fields.threadKey |
nie | Opcjonalny - kieruje wiadomość do wątku w pokoju |
fields.message |
tak | Domyślna treść wiadomości (nadpisywana per wywołanie) |
Wysyłka wiadomości
POST /connect/connectors/:id/method/send_message
Content-Type: application/json
{
"params_json": "{\"message\": \"Treść wiadomości\"}"
}
Metoda send_message na konektorze wywołuje endpoint Google Chat z text ustawionym na przekazany message (a w razie braku - na wartość fields.message).
Konektor systemowy
Kod sugester2_google_chat_system jest specjalny - jeśli zainstalowany na koncie systemowym, alerty z Platform::SystemConnector.send_google_chat(text) wysyłają tę samą treść co alerty SMS dla adminów (System::Security::SecurityConfig.notify_admins).
Parsowanie URL-a webhooka
Format URL-a z Google Chat:
https://chat.googleapis.com/v1/spaces/{ROOM}/messages?key={KEY}&token={TOKEN}&threadKey={THREAD}
Apka instalacyjna sama wyłuskuje room, key, token i (opcjonalnie) threadKey z wklejonego URL-a i mapuje na pola konektora.