W aplikacji Synology Chat dostępne są funkcje integracji niestandardowej, które umożliwiają skonfigurowanie przychodzących i wychodzących akcji Webhook oraz polecenia ukośnika. Aby włączyć te funkcje, kliknij ikonę Zdjęcia profilowego u góry po prawej stronie i wybierz opcję Integracja.
Przychodząca akcja Webhook będzie umieszczać w aplikacji Chat wiadomości ze źródeł zewnętrznych. Korzysta ona z ogólnych żądań HTTP z danymi JSON, a także innych opcjonalnych ustawień.
Istnieją dwa sposoby przesyłania danych do adresu URL akcji Webhook:
danych
w żądaniu POST,Dane JSON mogą zawierać właściwość tekstu
, która zostanie dodana do przypisanego kanału. Na przykład:
payload={"text": "Pierwszy wiersz wiadomości publikowanej na kanale.\nMożliwy jest również wybór drugiej linii wiadomości."}
Aby dodać łącze, można wprowadzić je bezpośrednio do tekstu
. Na przykład:
payload={"text": "<https://www.synology.com>"}
Inny przykład:
payload={"text": "Sprawdź to!! <https://www.synology.com|Click here> zobacz szczegóły!"}
Ponadto można przesłać plik w postach przychodzących. Aby przesłać plik, dane JSON muszą zawierać właściwość file_url
oraz opcjonalnie właściwość tekstu. Pobierzemy Twój adres URL i potraktujemy go jak jako post z plikiem użytkownika. Na przykład:
payload={"text": "zabawny obrazek", "plik_url." "http://imgur.com/xxxxx"}
Wychodzące akcje Webhook nasłuchują słów wyzwalających w wiadomościach Czatu. Słowa wyzwalające wyślą odpowiednie dane do zewnętrznego adresu URL. Wychodzące akcje Webhook mogą zostać wyzwolone tylko po spełnieniu jednego lub obu poniższych warunków:
Jeśli kanał został wybrany, słowa wyzwalające są opcjonalne. Słowa wyzwalające są wymagane, jeśli żaden kanał nie został wybrany. Jednak po określeniu obu warunków wychodząca akcja Webhook będzie miała miejsce tylko wtedy, gdy oba warunki zostaną spełnione równocześnie.
Gdy odebrana wiadomość spełnia warunki wyzwalania, POST zostanie dostarczony do przypisanego adresu URL. Pola danych są opisane poniżej:
token: bot tokenchannel_idchannel_nameuser_id__USERNAME__post_idSygnatura czasowateksttrigger_word: które słowo wyzwalające zostanie dopasowane
Jeśli w kanale Czatu odpowiedzi chce udzielić zewnętrzne miejsce docelowe, JSON musi zostać zwrócony w treści tej odpowiedzi. Pola obsługiwane są takie same jak w przypadku przychodzących akcji Webhook JSON.
Polecenie ukośnika umożliwia proste wyzwalanie wychodzących akcji Webhook wpisując "/" w polu tekstowym. Odpowiedzi będą widoczne tylko dla ciebie, a więc inni użytkownicy nie będą widzieć wiadomości, które ich nie dotyczą.
Polecenia ukośnika można modyfikować w zakładce Integration. Dostęp do obszaru Integration można uzyskać, klikając Zdjęcie profilowe w prawym górnym rogu.
W polu tekstowym dowolnego kanału lub konwersacji wpisz "/". Spowoduje to wyświetlenie listy komend stworzonych przez użytkownika i jego zespołów. Przykładowo, po wpisaniu "/" i wybraniu "/lunch", akcja Webhook wyświetli rekomendowany posiłek.
Bot może rozpocząć rozmowę z Tobą, zamieszczać wiadomości wysłane ze źródeł zewnętrznych i słuchać wiadomości wysłanych przez użytkownika w rozmowie.
Zaznaczenie opcji Ukryj na liście botów sprawi, że użytkownicy nie będą widzieli danego bota na liście ani nie będą mogli go dodawać.
Jeśli w pole konfiguracji bota został wprowadzony wychodzący adres URL, aplikacja Chat wyśle żądanie do strony URL, gdy użytkownik wyśle wiadomość do bota. Pola danych zostały opisane poniżej:
token: bot tokenuser_id__USERNAME__post_idSygnatura czasowatekst
Korzystając z parametru danych w żądaniu POST, możesz przypisać odbiorców i wiadomości. Na przykład:
payload={"text": "Pierwszy wiersz wiadomości publikowanej na kanale.\nMożliwy jest również wybór drugiej linii wiadomości.", "user_ids": [5] }
Oznacza to, że wiadomośćPierwszy wiersz wiadomości publikowanej na kanale.\nMożliwy jest również wybór drugiej linii wiadomości.>została wysłana do użytkownika, a jej user_id ma wartość 5.
Bot może podczas rozmowy wysyłać teksty i pliki, a także dołączać specjalne dane (załącznik) i obiekty interaktywne (akcja). Do interaktywnych obiektów można używać teraz przycisków. Do pola załączników w danych możesz dodać wiadomość, którą chcesz dołączyć. Na przykład:
załączniki: tablica z obiektem załącznika
obiekt załącznika: { callback_id: ciąg[2], który odnosi się do ciągu określonego przez usługę bota. Zostanie to do Ciebie wysłane, gdy użytkownik uruchomi zdarzenie z dołączonymi danymi. tekst: ciąg akcje: tablica z obiektem akcji}
obiekt akcji: { typ: "przycisk" tekst: ciąg nazwa: ciąg wartość: ciąg styl: ciąg, w którym kolor zielony, szary, czerwony, pomarańczowy, niebieski i turkusowy oznaczają możliwe wartości}
Na przykład:
payload={"text": "Hello World", "user_ids": [3], "załączniki":[{"callback_id": "abc", "tekst": "załącznik", "akcje":[{"typ": "przycisk", "nazwa": "resp", "wartość": "ok", "text": "OK", "styl": "zielony"}]}]}
Chat wyśle żądanie do wychodzącego adresu URL bota, gdy użytkownik uruchomi interaktywny obiekt. Pola danych są opisane poniżej:
dane = { "akcje": tablica z obiektem akcji, która odnosi się do akcji uruchomionej przez użytkownika "callback_id": ciąg, który odnosi się do callback_id załącznika, w którym znajduje się akcja wyzwolona przez użytkownika "post_id" "token" "użytkownik": { "user_id" "username" }}
Gdy bot otrzyma żądanie, może odesłać dane JSON w celu sprawdzenia oryginalnego żądania POST. Opróczuser_id, obsługiwany format jest taki sam jak format danych.
Na przykład:
{"text": "Użytkownik otrzymał Twoją odpowiedź."}
Możesz wysyłać żądanie do poniższych adresów URL: [Chat URL]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
i może zawierać poniższy parametr: token = bot token
Możesz wysyłać żądanie do poniższych adresów URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
i może zawierać poniższy parametr: token = bot token
Możesz wysyłać żądanie do poniższych adresów URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
i może zawierać poniższe parametry: token = bot tokenchannel_id = channel_id jest przeznaczony dla przeglądanianext_count = liczba wiadomości, które przychodzą po wpisieprev_count = liczba wiadomości, które przychodzą przed wpisem, gdzie 1 jest minimum(optional)post_id = post_id jest przeznaczony dla przeglądania, niewypełniona wartość post_id odnosi się do najnowszych wiadomości
Możesz wysyłać żądanie do poniższych adresów URL: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"
i może zawierać poniższe parametry: token = bot tokenpost_id = post_id jest przeznaczony dla przeglądania