Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Vissa kanaler innehåller funktioner som inte kan implementeras med endast meddelandetext och bifogade filer. Om du vill implementera kanalspecifika funktioner kan du skicka inbyggda metadata till en kanal i aktivitetsobjektets channelData
-egenskap. Din robot kan till exempel använda channelData
egenskapen för att instruera Telegram att skicka ett klistermärke eller instruera Office365 att skicka ett e-postmeddelande.
I den här artikeln beskrivs hur du använder en meddelandeaktivitets channelData
egenskap för att implementera den här kanalspecifika funktionen:
Kanal | Funktioner |
---|---|
E-post | Skicka och ta emot ett e-postmeddelande som innehåller metadata för brödtext, ämne och prioritet |
Slack | Skicka Slack-meddelanden med fullständig återgivning |
Skicka Facebook-meddelanden internt | |
Telegram | Utföra Telegram-specifika åtgärder, till exempel att dela ett röstmemorandum eller en dekal |
Anteckning
Värdet för ett Activity
objekts channelData
-egenskap är ett JSON-objekt.
Strukturen för JSON-objektet varierar beroende på vilken kanal och vilka funktioner som implementeras, enligt beskrivningen nedan.
Skapa ett anpassat e-postmeddelande
Om du vill skapa ett e-postmeddelande anger du Activity
objektets channelData
egenskap till ett JSON-objekt som innehåller följande egenskaper:
{
"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",
}
}
Det här kodfragmentet visar ett exempel på channelData
egenskapen för ett anpassat e-postmeddelande.
"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"
}
Skapa ett Slack-meddelande med fullständig återgivning
Om du vill skapa ett Slack-meddelande med fullständig återgivning anger du Activity
objektets channelData
egenskap till ett JSON-objekt som anger Slack-meddelanden, Slack-bifogade filer och/eller Slack-knappar.
Anteckning
Om du vill ha stöd för knappar i Slack-meddelanden måste du aktivera interaktiva meddelanden när du ansluter roboten till Slack-kanalen.
Det här kodfragmentet visar ett exempel på channelData
egenskapen för ett anpassat Slack-meddelande.
"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"
}
]
}
]
}
När en användare klickar på en knapp i ett Slack-meddelande får roboten channelData
ett svarsmeddelande där egenskapen är ifylld med ett payload
JSON-objekt. Objektet payload
anger innehållet i det ursprungliga meddelandet, identifierar knappen som klickades och identifierar användaren som klickade på knappen.
Det här kodfragmentet visar ett exempel på channelData
egenskapen i meddelandet som en robot tar emot när en användare klickar på en knapp i Slack-meddelandet.
"channelData": {
"payload": {
"actions": [
{
"name": "recommend",
"value": "yes"
}
],
//...
"original_message": "{...}",
"response_url": "https://hooks.slack.com/actions/..."
}
}
Roboten kan svara på det här meddelandet på vanligt sätt, eller så kan den publicera sitt svar direkt till den slutpunkt som anges av payload
objektets response_url
-egenskap. Information om när och hur du publicerar ett svar på finns i response_url
Slack-knappar.
Skapa ett Facebook-meddelande
Om du vill skapa ett Facebook-meddelande anger du Activity
objektets channelData
egenskap till ett JSON-objekt som anger följande egenskaper:
Egenskap | Beskrivning |
---|---|
notification_type | Typ av meddelande (till exempel REGULAR, SILENT_PUSH eller NO_PUSH). |
Bifogad fil | En bifogad fil som anger en bild, video eller annan multimediatyp eller en bifogad mall, till exempel ett kvitto. |
Anteckning
Mer information om format och innehåll för notification_type
egenskapen finns attachment
i Facebook API-dokumentationen.
Det här kodfragmentet visar ett exempel på channelData
egenskapen för en bifogad Facebook-kvittobilaga.
"channelData": {
"notification_type": "NO_PUSH",
"attachment": {
"type": "template",
"payload": {
"template_type": "receipt",
//...
}
}
}
Skapa ett Telegram-meddelande
Om du vill skapa ett meddelande som implementerar Telegram-specifika åtgärder, till exempel att dela ett röstmemorandum eller en dekal, anger du Activity
objektets channelData
egenskap till ett JSON-objekt som anger dessa egenskaper:
Egenskap | Beskrivning |
---|---|
metod | Den Telegram Bot API-metod som ska anropas. |
parametrar | Parametrarna för den angivna metoden. |
Dessa Telegram-metoder stöds:
- answerInlineQuery
- editMessageCaption
- editMessageReplyMarkup
- editMessageText
- forwardMessage
- banChatMember
- sendAudio
- sendChatAction
- sendContact
- sendDocument
- sendLocation
- sendMessage
- sendPhoto
- sendSticker
- sendVenue
- sendVideo
- sendVoice
- unbanChatMember
Mer information om dessa Telegram-metoder och deras parametrar finns i Telegram Bot API-dokumentationen.
Anteckning
- Parametern
chat_id
är gemensam för alla Telegram-metoder. Om du inte angerchat_id
som en parameter tillhandahåller ramverket ID:t åt dig. - I stället för att skicka infogat filinnehåll anger du filen med hjälp av en URL och medietyp enligt exemplet nedan.
- I varje meddelande som roboten tar emot från Telegram-kanalen
channelData
innehåller egenskapen det meddelande som roboten skickade tidigare.
Det här kodfragmentet visar ett exempel på en channelData
egenskap som anger en enda Telegram-metod.
"channelData": {
"method": "sendSticker",
"parameters": {
"sticker": {
"url": "https://domain.com/path/gif",
"mediaType": "image/gif",
}
}
}
Det här kodfragmentet visar ett exempel på en channelData
egenskap som anger en matris med Telegram-metoder.
"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"
}
}
]