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ó |
---|---|
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-é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 Activity
channelData
é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_url
Slack-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 megchat_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"
}
}
]