Met de standaard integratiefuncties in Synology Chat kunt u inkomende en uitgaande webhooks, bots en schuine streep-opdrachten configureren. Klik op het pictogram Profielfoto in de rechterbovenhoek en selecteer Integratie om deze functies in te schakelen.
Een inkomende webhook zal een bericht van externe bronnen in Chat plaatsen. Het maakt naast andere optionele instellingen gebruik van algemene HTTP-verzoeken met een JSON payload.
er zijn twee manieren om gegevens naar de webhook URL te sturen:
payload
-parameter in een POST-verzoek.De JSON payload kan een text
-eigenschap bevatten die gepost zal worden op het toegewezen kanaal. Bijvoorbeeld:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message."}
Om een koppeling toe te voegen kunt u de koppeling rechtstreeks in de text
invoeren. Bijvoorbeeld:
payload={"text": "<https://www.synology.com>"}
Een ander voorbeeld:
payload={"text": "Check this!! <https://www.synology.com|Click here> for details!"}
u kunt ook een bestand uploaden in uw inkomende berichten. Om een bestand te uploaden moet uw JSON payload een file_url
-eigenschap bevatten naast een optionele teksteigenschap. We zullen uw URL downloaden en behandelen als uploadpost van gebruikersbestand. Bijvoorbeeld:
payload={"text": "a fun image", "file_url": "http://imgur.com/xxxxx"}
Uitgaande webhooks luisteren naar triggerwoorden in Chatberichten. Deze triggerwoorden zullen relevante gegevens naar een externe URL versturen Uitgaande webhooks kunnen enkel geactiveerd worden als aan een of beide onderstaande voorwaarden is voldaan:
Als er een kanaal wordt aangegeven, zijn triggerwoorden optioneel. Triggerwoorden zijn vereist als er geen kanaal is geselecteerd. Als twee voorwaarden zijn gedefinieerd, zal de uitgaande webhook enkel plaatsvinden als er aan twee voorwaarden tegelijk is voldaan.
wanneer een ontvangen bericht overeenstemt met een trigger, zal er een POST worden gestuurd naar de toegewezen URL. Gegevensvelden worden hieronder beschreven:
token: bot token channel_id channel_name user_id username post_id timestamp text trigger_word: which trigger word is matched
als de externe bestemming wil antwoorden in het Chatkanaal, moet de JSON in de body van het antwoord worden geretourneerd. Ondersteunde velden zijn dezelfde als een inkomende webhook JSON.
Bij schuine streep-opdrachten kunt u eenvoudig uitgaande webhooks activeren door "/" in het tekstveld te typen. Antwoorden zullen alleen voor u zichtbaar zijn, zodat andere gebruikers geen voor hen irrelevante berichten ontvangen.
In Integratie kunt u schuine streep-opdrachten aanpassen. Voor toegang tot Integratie klikt u in de rechterbovenhoek van uw profielfoto.
typ een schuine streep "/" in het tekstveld van een kanaal of conversatie en er verschijnt een keuzelijst van door u en uw teams gemaakte opdrachten. Typt u bijvoorbeeld "/" en selecteert u "/lunch", dan zal de webhook mij een maaltijd aanbevelen.
Een bot kan een een-op-een-gesprek met u aangaan, berichten van externe bronnen posten en luisteren naar berichten die door de gebruiker in een gesprek worden verzonden.
Schakel het selectievakje Verbergen in de botlijst in om te voorkomen dat gebruikers deze bot in de botlijst kunnen zien of toevoegen.
Na het invoeren van een uitgaande URL in het botconfiguratieveld, stuurt Chat een verzoek naar de URL wanneer een gebruiker een bericht naar de bot stuurt. Hieronder worden de gegevensvelden beschreven:
token: bot token user_id username post_id timestamp text
U kunt de ontvangers en berichten toewijzingen met de payloadparamerer in een POST-aanvraag. Bijvoorbeeld:
payload={"text": "First line of message to post in the channel.\nAlso you can have a second line of message.", "user_ids": [5] }
Dit betekent dat het bericht First line of message to post in the channel.\nAlso you can have a second line of message.> verzonden is naar de gebruiker met user_id 5.
In een gesprek met een bot kan de bot teksten en bestanden verzenden en ook speciale gegevens (bijlage) aan interactieve objecten (actie) toe te voegen. Er zijn knoppen voor interactieve objecten. U kunt het bericht toevoegen dat u aan het bijlageveld in de payload wilt toevoegen. Bijvoorbeeld:
attachments: array of attachment object
attachment object: { callback_id: string[2], which refers to the string self-defined by the bot service. This will be sent to you when a user triggers an event attached with data. text: string actions: array of action object }
action object: { type: "button" text: string name: string value: string style: string, where green, grey, red, orange, blue, and teal are the feasible values }
Bijvoorbeeld:
payload={"text": "Hello World", "user_ids": [3], "attachments":
[{"callback_id": "abc", "text": "attachment", "actions":
[{"type": "button", "name": "resp", "value": "ok", "text": "OK", "style": "green"}]}]}
Chat stuurt een aanvraag naar de uitgaande URL van de bot wanneer een gebruiker een interactief object activeert. Gegevensvelden worden hieronder beschreven:
payload = { "actions": array of action object, which refers to the action triggered by the user "callback_id": string, which refers to the callback_id of the attachment where the action triggered by the user is located "post_id" "token" "user": { "user_id" "username" } }
Nadat een bot een aanvraag ontvangt, kan het de JSON-gegevens terugsturen om de originele POST te reviseren. Behalve user_id, is het ondersteunde formaat gelijk aan dat van de payload.
Bijvoorbeeld:
{"text": "Got your response!"}
U kunt een aanvraag naar de volgende URL verzenden: [Chat URL]/webapi/entry.cgi?api=SYNO.Chat.External&method=channel_list&version=2
en de onderstaande parameter opnemen: token = bot token
U kunt een aanvraag naar de volgende URL verzenden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=user_list&version=2
en de onderstaande parameter opnemen: token = bot token
U kunt een aanvraag naar de volgende URL verzenden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_list&version=2
en de onderstaande parameters opnemen: token = bot token channel_id = channel_id is intended for browsing next_count = the number of messages that comes after a post prev_count = the number of messages that comes before a post, with 1 as the minimum (optional)post_id = post_id is intended for browsing, the unfilled post_id refers to the newest message
U kunt een aanvraag naar de volgende URL verzenden: {Chat URL}/webapi/entry.cgi?api=SYNO.Chat.External&method=post_file_get&version=2&post_id={post id}&token="{bot token}"
en de onderstaande parameters opnemen: token = bot token post_id = post_id is intended for browsing