Aracılığıyla paylaş


Bot Bağlayıcısı API'siyle kanala özgü işlevsellik uygulama

Bazı kanallar yalnızca ileti metni ve ekleri kullanılarak uygulanamaz özellikler sağlar. Kanala özgü işlevselliği uygulamak için , Activity nesnesinin channelData özelliğindeki bir kanala yerel meta veriler geçirebilirsiniz. Örneğin botunuz özelliğini kullanarak Telegram'a çıkartma göndermesini veya Office365'e e-posta göndermesini bildirebilir channelData .

Bu makalede, kanala özgü bu işlevselliği uygulamak için ileti etkinliğinin channelData özelliğinin nasıl kullanılacağı açıklanmaktadır:

Kanal İşlev
E-posta Gövde, konu ve önem meta verilerini içeren bir e-posta gönderme ve alma
Slack Tam uygunluk Slack iletileri gönderme
Facebook Facebook bildirimlerini yerel olarak gönderme
Telegram Sesli not veya çıkartma paylaşma gibi Telegram'a özgü eylemler gerçekleştirme

Not

Nesnenin ActivitychannelData özelliğinin değeri bir JSON nesnesidir. JSON nesnesinin yapısı, aşağıda açıklandığı gibi kanala ve uygulanan işlevlere göre farklılık gösterir.

Özel e-posta iletisi oluşturma

E-posta iletisi oluşturmak için nesnenin ActivitychannelData özelliğini şu özellikleri içeren bir JSON nesnesi olarak ayarlayın:

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

Bu kod parçacığı, özel bir e-posta iletisi için özelliğinin channelData bir örneğini gösterir.

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

Tam uygunluk slack iletisi oluşturma

Tam uygunlukta bir Slack iletisi oluşturmak için nesnenin ActivitychannelData özelliğini Slack iletilerini, Slack eklerini ve/veya Slack düğmelerini belirten bir JSON nesnesi olarak ayarlayın.

Not

Slack iletilerindeki düğmeleri desteklemek için botunuzu Slack kanalına bağlarken Etkileşimli İletiler'ietkinleştirmeniz gerekir.

Bu kod parçacığı, özel slack iletisi için özelliğinin channelData bir örneğini gösterir.

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

Kullanıcı Slack iletisindeki bir düğmeye tıkladığında botunuz, özelliğin channelData bir JSON nesnesiyle doldurulacağı bir payload yanıt iletisi alır. payload nesnesi özgün iletinin içeriğini belirtir, tıklanan düğmeyi tanımlar ve düğmeye tıklayan kullanıcıyı tanımlar.

Bu kod parçacığı, kullanıcı Slack iletisindeki bir düğmeye tıkladığında botun aldığı iletideki özelliğin bir örneğini channelData gösterir.

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

Botunuz bu iletiyi normal şekilde yanıtlayabilir veya yanıtını doğrudan nesnenin response_url özelliği tarafından payload belirtilen uç noktaya gönderebilir. öğesine yanıt gönderme ve gönderme hakkında bilgi için response_urlbkz. Slack Düğmeleri.

Facebook bildirimi oluşturma

Facebook bildirimi oluşturmak için nesnenin ActivitychannelData özelliğini şu özellikleri belirten bir JSON nesnesi olarak ayarlayın:

Özellik Açıklama
notification_type Bildirim türü ( NORMAL, SILENT_PUSH veya NO_PUSH gibi).
Eki Görüntü, video veya başka bir multimedya türünü ya da makbuz gibi şablonlu bir eki belirten bir ek.

Not

Özelliğin ve özelliğin notification_type biçimi ve attachment içeriği hakkında ayrıntılı bilgi için Facebook API belgelerine bakın.

Bu kod parçacığı, Facebook makbuz eki için özelliğinin channelData bir örneğini gösterir.

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

Telegram iletisi oluşturma

Sesli not veya çıkartma paylaşma gibi Telegram'a özgü eylemler uygulayan bir ileti oluşturmak için nesnenin ActivitychannelData özelliğini şu özellikleri belirten bir JSON nesnesi olarak ayarlayın:

Özellik Açıklama
method Çağrılacak Telegram Bot API yöntemi.
parameters Belirtilen yöntemin parametreleri.

Bu Telegram yöntemleri desteklenir:

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

Bu Telegram yöntemleri ve parametreleri hakkında ayrıntılı bilgi için Telegram Bot API belgelerine bakın.

Not

  • chat_id parametresi tüm Telegram yöntemlerinde ortaktır. Parametre olarak belirtmezseniz chat_id , çerçeve kimliğinizi sağlar.
  • Dosya içeriğini satır içinde geçirmek yerine, aşağıdaki örnekte gösterildiği gibi bir URL ve medya türü kullanarak dosyayı belirtin.
  • Botunuzun Telegram kanalından aldığı her iletinin channelData içinde, özellik botunuzun daha önce gönderdiği iletiyi içerir.

Bu kod parçacığı, tek bir Telegram yöntemini belirten bir channelData özelliğin örneğini gösterir.

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

Bu kod parçacığı, bir Dizi Telegram yöntemini belirten bir channelData özellik örneğini gösterir.

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

Ek kaynaklar