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 channelDataActivity. 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
E-mail 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í
Facebook 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 ActivitychannelData 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 ActivitychannelData 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 ActivitychannelData 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_urltématu Tlačítka slack.

Vytvoření oznámení na Facebooku

Pokud chcete vytvořit facebookové oznámení, nastavte vlastnost objektu ActivitychannelData 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 ActivitychannelData 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áte chat_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"
        }
    }
]

Další materiály