Megosztás a következőn keresztül:


Csatornaspecifikus funkciók implementálása a Bot Connector API-val

Egyes csatornák olyan funkciókat biztosítanak, amelyek nem valósíthatók meg csak üzenetszöveg és mellékletek használatával. A csatornaspecifikus funkciók implementálásához natív metaadatokat adhat át egy csatornának a Tevékenység objektum tulajdonságában channelData . A robot például a tulajdonság használatával utasíthatja a channelData Telegramot, hogy küldjön matricát, vagy utasítsa az Office365-öt, hogy küldjön e-mailt.

Ez a cikk azt ismerteti, hogyan használhatja az üzenettevékenység tulajdonságát channelData a csatornaspecifikus funkciók implementálásához:

Csatorna Funkció
E-mail Törzs-, tárgy- és fontossági metaadatokat tartalmazó e-mail küldése és fogadása
Slack Teljes hűségű Slack-üzenetek küldése
Facebook Facebook-értesítések küldése natív módon
Telegram Távirat-specifikus műveletek végrehajtása, például hangjegyzet vagy matrica megosztása

Megjegyzés

Az objektum tulajdonságának ActivitychannelData értéke egy JSON-objektum. A JSON-objektum szerkezete a csatornától és a megvalósítandó funkcióktól függően változik az alábbiak szerint.

Egyéni e-mail-üzenet létrehozása

E-mail létrehozásához állítsa az Activity objektum tulajdonságát channelData egy JSON-objektumra, amely az alábbi tulajdonságokat tartalmazza:

{
    "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",
    }
}

Ez a kódrészlet egy egyéni e-mail tulajdonságára channelData mutat példát.

"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"
}

Teljes körű Slack-üzenet létrehozása

Teljes körű Slack-üzenet létrehozásához állítsa az Activity objektum tulajdonságát channelData egy JSON-objektumra, amely meghatározza a Slack-üzeneteket, a Slack-mellékleteket és/vagy a Slack gombokat.

Megjegyzés

A Slack-üzenetek gombjainak támogatásához engedélyeznie kell az Interaktív üzenetek funkciót , amikor csatlakoztatja a robotot a Slack-csatornához.

Ez a kódrészlet egy egyéni Slack-üzenet tulajdonságára channelData mutat példát.

"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"
                }
            ]
        }
    ]
}

Amikor egy felhasználó egy Slack-üzenetben egy gombra kattint, a robot egy válaszüzenetet kap, amelyben a channelData tulajdonság egy payload JSON-objektummal van feltöltve. Az payload objektum megadja az eredeti üzenet tartalmát, azonosítja a kattintott gombot, és azonosítja a gombra kattintó felhasználót.

Ez a kódrészlet egy példát mutat a channelData robot által kapott üzenet tulajdonságára, amikor a felhasználó a Slack-üzenet egyik gombjára kattint.

"channelData": {
    "payload": {
        "actions": [
            {
                "name": "recommend",
                "value": "yes"
            }
        ],
        //...
        "original_message": "{...}",
        "response_url": "https://hooks.slack.com/actions/..."
    }
}

A robot normál módon válaszolhat erre az üzenetre, vagy közvetlenül az objektum tulajdonsága által megadott végpontra küldheti a payload válaszát response_url . A válasz közzétételének időpontjáról és módjáról a response_urlSlack-gombok című témakörben olvashat.

Facebook-értesítés létrehozása

Facebook-értesítés létrehozásához állítsa be az Activity objektum tulajdonságát channelData egy JSON-objektumra, amely meghatározza ezeket a tulajdonságokat:

Tulajdonság Leírás
notification_type Az értesítés típusa (például REGULÁRIS, SILENT_PUSH vagy NO_PUSH).
Mellékletet Kép-, videó- vagy egyéb multimédiás típust, illetve sablonalapú mellékletet, például nyugtát meghatározó melléklet.

Megjegyzés

A tulajdonság és tulajdonság notification_type formátumával és attachment tartalmával kapcsolatos részletekért tekintse meg a Facebook API dokumentációját.

Ez a kódrészlet egy Facebook-nyugta melléklet tulajdonságára channelData mutat példát.

"channelData": {
    "notification_type": "NO_PUSH",
    "attachment": {
        "type": "template",
        "payload": {
            "template_type": "receipt",
            //...
        }
    }
}

Távirati üzenet létrehozása

Ha olyan üzenetet szeretne létrehozni, amely Telegram-specifikus műveleteket valósít meg, például hangjegyzetet vagy matricát oszt meg, állítsa az Activity objektum tulajdonságát channelData egy JSON-objektumra, amely meghatározza ezeket a tulajdonságokat:

Tulajdonság Leírás
method A Meghívandó Telegram Bot API-metódus.
parameters A megadott metódus paraméterei.

Ezek a Telegram-metódusok támogatottak:

  • answerInlineQuery
  • editMessageCaption
  • editMessageReplyMarkup
  • editMessageText
  • forwardMessage
  • banChatMember
  • sendAudio
  • sendChatAction
  • sendContact
  • sendDocument
  • sendLocation
  • sendMessage
  • sendPhoto
  • sendSticker
  • sendVenue
  • sendVideo
  • sendVoice
  • unbanChatMember

Ezekről a Telegram-metódusokról és paramétereikről a Telegram Bot API dokumentációjában talál további információt.

Megjegyzés

  • A chat_id paraméter minden Telegram-metódusnál gyakori. Ha nem adja meg chat_id paraméterként, a keretrendszer megadja az azonosítót.
  • A fájl tartalmának beágyazott átadása helyett adja meg a fájlt URL-címmel és médiatípussal az alábbi példában látható módon.
  • A robot által a Telegram-csatornáról kapott minden egyes üzenetben a channelData tulajdonság tartalmazza a robot által korábban küldött üzenetet.

Ez a kódrészlet egy olyan tulajdonságra mutat példát channelData , amely egyetlen Telegram-metódust határoz meg.

"channelData": {
    "method": "sendSticker",
    "parameters": {
        "sticker": {
            "url": "https://domain.com/path/gif",
            "mediaType": "image/gif",
        }
    }
}

Ez a kódrészlet egy olyan tulajdonságra mutat példát channelData , amely Telegram metódusok tömbjét adja meg.

"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"
        }
    }
]

További források