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.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|Kliknutím na tento odkaz> zobrazíte podrobnosti!"}
Do svých příchozích příspěvků můžete také odeslat soubor. Chcete-li odeslat 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 odeslá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: bot tokenchannel_idchannel_nameuser_idusernamepost_idtimestamptexttrigger_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ám „/“ a vyberu možnost „/oběd“, doporučí mi 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: bot tokenuser_idusernamepost_idtimestamptext
Příjemce a zprávy je možné přiřadit prostřednictvím parametru datové části v požadavku POST. 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ávaPrvní řá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: array of attachment object
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: array of action object}
action object: { type: "button" text: string name: string value: string style: string, ve kterém lze použít hodnoty zelená, šedá, červená, oranžová, modrá a šedozelená}
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 odeslat zpět data JSON a upravit tak původní požadavek POST. Kroměuser_id, podporovaný formát je 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 robotachannel_id = parametr channel_ID je určen pro procházenínext_count = počet zpráv následujících po požadavku POSTprevious_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 robotapost_id = parametr post_id je určen pro procházení