Implementowanie funkcji specyficznych dla kanału za pomocą interfejsu API łącznika bota
Niektóre kanały udostępniają funkcje, których nie można zaimplementować przy użyciu tylko tekstu i załączników wiadomości. Aby zaimplementować funkcjonalność specyficzną dla kanału, można przekazać metadane natywne do kanału we właściwości obiektu channelData
Działania. Na przykład bot może użyć channelData
właściwości , aby poinstruować Telegram, aby wysłać naklejkę lub poinstruować usługę Office365 o wysłaniu wiadomości e-mail.
W tym artykule opisano sposób użycia właściwości działania channelData
komunikatów do zaimplementowania tej funkcji specyficznej dla kanału:
Kanał | Funkcjonalność |
---|---|
Wysyłanie i odbieranie wiadomości e-mail zawierającej metadane treści, tematu i ważności | |
Slack | Wysyłanie komunikatów Slack o pełnej wierności |
Wysyłanie powiadomień na Facebooku natywnie | |
Telegram | Wykonywanie akcji specyficznych dla telegramu, takich jak udostępnianie notatki głosowej lub naklejki |
Uwaga
Wartość Activity
właściwości obiektu channelData
jest obiektem JSON.
Struktura obiektu JSON będzie się różnić w zależności od kanału i zaimplementowanej funkcjonalności, jak opisano poniżej.
Tworzenie niestandardowej wiadomości e-mail
Aby utworzyć wiadomość e-mail, ustaw Activity
właściwość obiektu channelData
na obiekt JSON zawierający następujące właściwości:
{
"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",
}
}
Ten fragment kodu przedstawia przykład channelData
właściwości niestandardowej wiadomości e-mail.
"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"
}
Tworzenie pełnej wierności komunikatu Slack
Aby utworzyć komunikat Slack o pełnej wierności, ustaw Activity
właściwość obiektu channelData
na obiekt JSON, który określa komunikaty usługi Slack, załączniki usługi Slack i/lub przyciski Usługi Slack.
Uwaga
Aby obsługiwać przyciski w komunikatach usługi Slack, należy włączyć komunikaty interakcyjne podczas łączenia bota z kanałem usługi Slack.
Ten fragment kodu przedstawia przykład channelData
właściwości niestandardowego komunikatu usługi Slack.
"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"
}
]
}
]
}
Gdy użytkownik kliknie przycisk w komunikacie usługi Slack, bot otrzyma komunikat odpowiedzi, w którym channelData
właściwość zostanie wypełniona obiektem payload
JSON. Obiekt payload
określa zawartość oryginalnego komunikatu, identyfikuje kliknięty przycisk i identyfikuje użytkownika, który kliknął przycisk.
Ten fragment kodu przedstawia przykład channelData
właściwości w komunikacie odbieranym przez bota po kliknięciu przycisku w komunikacie Usługi Slack.
"channelData": {
"payload": {
"actions": [
{
"name": "recommend",
"value": "yes"
}
],
//...
"original_message": "{...}",
"response_url": "https://hooks.slack.com/actions/..."
}
}
Bot może odpowiedzieć na tę wiadomość w normalny sposób lub opublikować odpowiedź bezpośrednio do punktu końcowego określonego payload
przez właściwość obiektu response_url
. Aby uzyskać informacje o tym, kiedy i jak opublikować odpowiedź na adres response_url
, zobacz Przyciski usługi Slack.
Tworzenie powiadomienia na facebooku
Aby utworzyć powiadomienie na Facebooku, ustaw Activity
właściwość obiektu channelData
na obiekt JSON, który określa następujące właściwości:
Właściwość | Opis |
---|---|
notification_type | Typ powiadomienia (na przykład REGULAR, SILENT_PUSH lub NO_PUSH). |
Załącznik | Załącznik określający obraz, wideo lub inny typ multimedialny albo szablonowy załącznik, taki jak potwierdzenie. |
Uwaga
Aby uzyskać szczegółowe informacje o formacie i zawartości właściwości i attachment
właściwości, zobacz dokumentację interfejsunotification_type
API serwisu Facebook.
Ten fragment kodu przedstawia przykład channelData
właściwości załącznika potwierdzenia na Facebooku.
"channelData": {
"notification_type": "NO_PUSH",
"attachment": {
"type": "template",
"payload": {
"template_type": "receipt",
//...
}
}
}
Tworzenie komunikatu telegramu
Aby utworzyć komunikat implementujący akcje specyficzne dla telegramu, takie jak udostępnianie notatki głosowej lub naklejki, ustaw Activity
właściwość obiektu channelData
na obiekt JSON, który określa następujące właściwości:
Właściwość | Opis |
---|---|
method | Metoda interfejsu API bota telegramu do wywołania. |
parameters | Parametry określonej metody. |
Obsługiwane są następujące metody telegramu:
- answerInlineQuery
- editMessageCaption
- editMessageReplyMarkup
- editMessageText
- forwardMessage
- banChatMember
- sendAudio
- sendChatAction
- sendContact
- sendDocument
- sendLocation
- sendMessage
- sendPhoto
- sendSticker
- sendVenue
- sendVideo
- sendVoice
- unbanChatMember
Aby uzyskać szczegółowe informacje na temat tych metod telegramu i ich parametrów, zobacz dokumentację interfejsu API bota telegramu.
Uwaga
- Parametr
chat_id
jest wspólny dla wszystkich metod Telegram. Jeśli nie określiszchat_id
jako parametru, platforma podasz identyfikator. - Zamiast przekazywać zawartość pliku w tekście, określ plik przy użyciu adresu URL i typu nośnika, jak pokazano w poniższym przykładzie.
- W każdej wiadomości odbieranej przez bota z kanału
channelData
Telegram właściwość będzie zawierać komunikat wysłany wcześniej przez bota.
Ten fragment kodu przedstawia przykład channelData
właściwości, która określa jedną metodę Telegram.
"channelData": {
"method": "sendSticker",
"parameters": {
"sticker": {
"url": "https://domain.com/path/gif",
"mediaType": "image/gif",
}
}
}
Ten fragment kodu przedstawia przykład channelData
właściwości, która określa tablicę 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"
}
}
]