Implementace funkcí specifických pro kanál pomocí rozhraní API konektoru robota
Některé kanály poskytují funkce, které nejde implementovat jenom pomocí textu zprávy a příloh. Pokud chcete implementovat funkce specifické pro kanál, můžete do kanálu předat nativní metadata ve vlastnosti objektu channelData
Activity. Váš robot může například použít channelData
vlastnost k pokynu Telegramu, aby poslal nálepku, nebo aby Dal Pokyn Office365 k odeslání e-mailu.
Tento článek popisuje, jak použít vlastnost aktivity channelData
zpráv k implementaci této funkce specifické pro kanál:
Kanál | Funkce |
---|---|
Odeslání a příjem e-mailu, který obsahuje metadata textu, předmětu a důležitosti | |
Slack | Odesílání zpráv Slack s úplnou věrností |
Nativní odesílání oznámení z Facebooku | |
Telegram | Provádění akcí specifických pro telegram, jako je sdílení hlasové poznámky nebo nálepky |
Poznámka
Hodnota vlastnosti objektu Activity
channelData
je objekt JSON.
Struktura objektu JSON se bude lišit v závislosti na kanálu a implementovaných funkcích, jak je popsáno níže.
Vytvoření vlastní e-mailové zprávy
Pokud chcete vytvořit e-mailovou zprávu, nastavte vlastnost objektu Activity
channelData
na objekt JSON, který obsahuje tyto vlastnosti:
{
"type": "ActivityTypes.Message",
"locale": "en-Us",
"channelID": "email",
"fromName": { "id": "mybot@mydomain.com", "name": "My bot"},
"recipientName": { "id": "joe@otherdomain.com", "name": "Joe Doe"},
"conversation": { "id": "123123123123", "topic": "awesome chat" },
"channelData":
{
"htmlBody": "<html><body style = \"font-family: Calibri; font-size: 11pt;\" >This is more than awesome.</body></html>",
"importance": "high",
"ccRecipients": "Yasemin@adatum.com;Temel@adventure-works.com",
}
}
Tento fragment kódu ukazuje příklad channelData
vlastnosti pro vlastní e-mailovou zprávu.
"channelData":
{
"htmlBody": "<html><body style = \"font-family: Calibri; font-size: 11pt;\" >This is more than awesome.</body></html>",
"importance": "high",
"ccRecipients": "Yasemin@adatum.com;Temel@adventure-works.com"
}
Vytvoření zprávy Slack s plnou věrností
Pokud chcete vytvořit zprávu Slacku s úplnou věrností, nastavte vlastnost objektu Activity
channelData
na objekt JSON, který určuje zprávy Slacku, přílohy Slacku nebo tlačítka Slacku.
Poznámka
Pokud chcete podporovat tlačítka ve zprávách Slacku, musíte při připojení robota ke kanálu Slacku povolit interaktivní zprávy.
Tento fragment kódu ukazuje příklad channelData
vlastnosti pro vlastní zprávu Slacku.
"channelData": {
"text": "Now back in stock! :tada:",
"attachments": [
{
"title": "The Further Adventures of Slackbot",
"author_name": "Stanford S. Strickland",
"author_icon": "https://api.slack.com/img/api/homepage_custom_integrations-2x.png",
"image_url": "http://i.imgur.com/OJkaVOI.jpg?1"
},
{
"fields": [
{
"title": "Volume",
"value": "1",
"short": true
},
{
"title": "Issue",
"value": "3",
"short": true
}
]
},
{
"title": "Synopsis",
"text": "After @episod pushed exciting changes to a devious new branch back in Issue 1, Slackbot notifies @don about an unexpected deploy..."
},
{
"fallback": "Would you recommend it to customers?",
"title": "Would you recommend it to customers?",
"callback_id": "comic_1234_xyz",
"color": "#3AA3E3",
"attachment_type": "default",
"actions": [
{
"name": "recommend",
"text": "Recommend",
"type": "button",
"value": "recommend"
},
{
"name": "no",
"text": "No",
"type": "button",
"value": "bad"
}
]
}
]
}
Když uživatel klikne na tlačítko ve zprávě Slacku, robot obdrží zprávu s odpovědí, ve které channelData
je vlastnost naplněna objektem payload
JSON. Objekt payload
určuje obsah původní zprávy, identifikuje tlačítko, na které bylo kliklo, a identifikuje uživatele, který na tlačítko kliknul.
Tento fragment kódu ukazuje příklad channelData
vlastnosti ve zprávě, kterou robot obdrží, když uživatel klikne na tlačítko ve zprávě Slack.
"channelData": {
"payload": {
"actions": [
{
"name": "recommend",
"value": "yes"
}
],
//...
"original_message": "{...}",
"response_url": "https://hooks.slack.com/actions/..."
}
}
Robot může na tuto zprávu odpovědět normálním způsobem nebo může odpověď odeslat přímo do koncového bodu určeného response_url
vlastností objektupayload
. Informace o tom, kdy a jak publikovat odpověď na , najdete v response_url
tématu Tlačítka slack.
Vytvoření oznámení na Facebooku
Pokud chcete vytvořit facebookové oznámení, nastavte vlastnost objektu Activity
channelData
na objekt JSON, který určuje tyto vlastnosti:
Vlastnost | Popis |
---|---|
notification_type | Typ oznámení (například REGULAR, SILENT_PUSH nebo NO_PUSH). |
Přílohu | Příloha, která určuje obrázek, video nebo jiný typ multimédií nebo šablonu přílohy, jako je potvrzení. |
Poznámka
Podrobnosti o formátu a obsahu notification_type
vlastnosti a attachment
vlastnosti najdete v dokumentaci k rozhraní FACEBOOK API.
Tento fragment kódu ukazuje příklad channelData
vlastnosti pro přílohu facebookové účtenky.
"channelData": {
"notification_type": "NO_PUSH",
"attachment": {
"type": "template",
"payload": {
"template_type": "receipt",
//...
}
}
}
Vytvoření zprávy telegramu
Pokud chcete vytvořit zprávu, která implementuje akce specifické pro Telegram, jako je sdílení hlasové poznámky nebo nálepky, nastavte vlastnost objektu Activity
channelData
na objekt JSON, který určuje tyto vlastnosti:
Vlastnost | Popis |
---|---|
method | Metoda rozhraní API telegram bot, která se má volat. |
parameters | Parametry zadané metody. |
Podporují se tyto metody telegramu:
- answerInlineQuery
- editMessageCaption
- editMessageReplyMarkup
- editMessageText
- forwardMessage
- Jan Chásek
- sendAudio
- sendChatAction
- sendContact
- sendDocument
- sendLocation
- Sendmessage
- sendPhoto
- sendSticker
- sendVenue
- sendVideo
- sendVoice
- unbanChatMember
Podrobnosti o těchto metodách Telegramu a jejich parametrech najdete v dokumentaci k rozhraní Telegram Bot API.
Poznámka
- Parametr
chat_id
je společný pro všechny metody Telegramu. Pokud nezadátechat_id
jako parametr, rozhraní vám id poskytne. - Místo předávání obsahu souboru v textu zadejte soubor pomocí adresy URL a typu média, jak je znázorněno v následujícím příkladu.
- V každé zprávě, kterou robot obdrží z kanálu Telegram,
channelData
bude vlastnost obsahovat zprávu, kterou robot odeslal dříve.
Tento fragment kódu ukazuje příklad channelData
vlastnosti, která určuje jednu metodu Telegram.
"channelData": {
"method": "sendSticker",
"parameters": {
"sticker": {
"url": "https://domain.com/path/gif",
"mediaType": "image/gif",
}
}
}
Tento fragment kódu ukazuje příklad channelData
vlastnosti, která určuje pole metod Telegram.
"channelData": [
{
"method": "sendSticker",
"parameters": {
"sticker": {
"url": "https://domain.com/path/gif",
"mediaType": "image/gif",
}
}
},
{
"method": "sendMessage",
"parameters": {
"text": "<b>This message is HTML formatted.</b>",
"parse_mode": "HTML"
}
}
]