Funkce vlastní integrace ve službě Synology Chat umožňují konfigurovat příchozí a odchozí volání webhook, roboty a příkazy lomítka. Tyto funkce můžete povolit kliknutím vpravo nahoře na ikonu Fotografie profilu a výběrem možnosti Integrace.
Příchozí volání webhook odešle do služby Chat zprávy z externích zdrojů. Využívá obecných požadavků HTTP s datovou částí JSON a další volitelná nastavení.
Existují dva způsoby odeslání dat na adresu URL volání webhook:
datové části
v požadavku POST request.Datová část JSON může obsahovat vlastnost text
, která se odešle do přiřazeného kanálu. Příklad:
payload={"text": "První řádek zprávy, která se odešle do kanálu.\nZpráva může mít také druhý řádek."}
Chcete-li přidat odkaz, můžete ho zadat přímo do textu
. Příklad:
payload={"text": "<https://www.synology.com>"}
Další příklad:
payload={"text": "Prohlédněte si tohle!! <https://www.synology.com|Po kliknutí na tento odkaz> si můžete prohlédnout podrobnosti!"}
Do svých příchozích příspěvků můžete také nahrát soubor. Chcete-li nahrát soubor, musí datová část JSON obsahovat vlastnost file_url
a také volitelnou vlastnost text. Vaši adresu URL stáhneme a budeme s ní zacházet jako s příspěvkem nahrání souboru uživatele. Příklad:
payload={"text": "legrační obrázek", "file_url": "http://imgur.com/xxxxx"}
Odchozí volání webhook naslouchají aktivačním slovům ve zprávách služby Chat. Tato aktivační slova odešlou příslušná data na externí adresu URL. Odchozí volání webhook lze aktivovat pouze v případě splnění jedné či obou následujících podmínek:
Pokud je uveden kanál, jsou aktivační slova volitelná. Pokud není vybrán žádný kanál, aktivační slova jsou povinná. Pokud jsou ale definovány obě dvě podmínky, proběhne odchozí volání webhook pouze v případě současného splnění obou podmínek.
Pokud přijatá zpráva odpovídá aktivaci, proběhne doručení požadavku POST na přiřazenou adresu URL. Datová pole jsou popsaná níže:
token: token robota
channel_id
channel_name
user_id
username
post_id
timestamp
text
trigger_word: které aktivační slovo odpovídá
Pokud chce externí cíl odpovědět v kanálu služby Chat, musí být datová část JSON navrácena v těle odpovědi. Podporovaná pole jsou stejná jako u datové části JSON příchozího volání webhook.
Příkazy lomítka umožňují snadné spouštění odchozích volání webhook napsáním znaku „/“ do textového pole. Odpovědi budou viditelné pouze vám, takže ostatním uživatelům se zprávy, které se jich netýkají, nezobrazí.
Příkazy lomítka lze upravit v části Integrace. Do části Integrace přejdete kliknutím na svou profilovou fotografii v pravém horním rohu.
Do textového pole libovolného kanálu nebo konverzace zadejte znak lomítka „/“. Zobrazí se seznam příkazů vytvořených vámi a členy vašich týmů. Pokud například zadáte „/“ a vyberete možnost „/lunch“, doporučí vám volání webhook nějaké jídlo.
Robot s vámi může zahájit konverzaci mezi dvěma uživateli, odeslat zprávy přijaté z externích zdrojů a naslouchat zprávám odeslaným uživateli v konverzaci.
Zaškrtnutím možnosti Skrýt ze seznamu robotů zabráníte uživatelům zobrazit a přidat tohoto robota ze seznamu robotů.
Pokud po zadání odchozí adresy URL do pole konfigurace robota odešle uživatel do robota zprávu, služba Chat odešle požadavek na tuto adresu URL. Níže se nachází popis datových polí:
token: token robota
user_id
username
post_id
timestamp
text
Příjemce a zprávy je možné přiřadit prostřednictvím parametru datové části v požadavku POST request. Příklad:
payload={"text": "První řádek zprávy, která se odešle do kanálu.\nZpráva může mít také druhý řádek.", "user_ids": [5] }
To znamená, že zpráva První řádek zprávy, která se odešle do kanálu.\nZpráva může mít také druhý řádek."}
byla odeslána uživateli s hodnotou user_id 5.
Při konverzaci s robotem může robot odesílat texty a soubory a může rovněž připojit speciální data (přílohu) a interaktivní objekty (akci). V současné době jsou jako interaktivní objekty nabízena tlačítka. Můžete přidat zprávu, kterou chcete připojit do pole přílohy v datové části. Příklad:
attachments: pole objektu přílohy
attachment object: {
callback_id: string[2], který označuje řetězec definovaný vlastní službou robota. Ten vám bude odeslán, když uživatel aktivuje událost s připojenými daty.
text: string
actions: pole objektu přílohy
}
action object: {
type: "button"
text: string
name: string
value: string
style: string, ve kterém lze použít hodnoty green, grey, red, orange, blue a teal
}
Příklad:
payload={"text": "Hello World", "user_ids": [3], "attachments":
[{"callback_id": "abc", "text": "attachment", "actions":
[{"type": "button", "name": "resp", "value": "ok", "text": "OK", "style": "green"}]}]}
Když uživatel aktivuje interaktivní objekt, odešle služba Chat požadavek na odchozí adresu URL robota. Datová pole jsou popsaná níže:
payload = {
"actions": pole objektů akce odkazující na akci aktivovanou uživatelem
"callback_id": řetězec odkazující na hodnotu callback_id přílohy, ve které se nachází akce aktivovaná uživatelem
"post_id"
"token"
"user": {
"user_id"
"username"
}
}
Poté, co robot přijme požadavek, může data JSON odeslat zpět a upravit tak původní příspěvek. Kromě položky user_id
je podporovaný formát stejný jako u datové části.
Příklad:
{"text": "Odpověď byla přijata!"}
Požadavek lze odeslat na následující adresu URL:
[Adresa URL služby Chat]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
a může obsahovat následující parametr:
token = token robota
Požadavek lze odeslat na následující adresu URL:
{Adresa URL služby Chat}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
a může obsahovat následující parametr:
token = token robota
Požadavek lze odeslat na následující adresu URL:
{Adresa URL služby Chat}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
a může obsahovat následující parametry:
token = token robota
channel_id = parametr channel_ID je určen pro procházení
next_count = počet zpráv následujících po požadavku POST
previous_count = počet zpráv předcházejících požadavku POST, minimální hodnota je 1
(volitelné)post_id = parametr post_id je určen pro procházení, nevyplněný parametr post_id označuje nejnovější zprávu
Požadavek lze odeslat na následující adresu URL:
{Adresa URL služby Chat}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={ID post}&token=„{token robota}“
a může obsahovat následující parametry:
token = token robota
post_id = parametr post_id je určen pro procházení