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 bildirimlerini yerel olarak gönderme | |
Telegram | Sesli not veya çıkartma paylaşma gibi Telegram'a özgü eylemler gerçekleştirme |
Not
Nesnenin Activity
channelData
ö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 Activity
channelData
ö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 Activity
channelData
ö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_url
bkz. Slack Düğmeleri.
Facebook bildirimi oluşturma
Facebook bildirimi oluşturmak için nesnenin Activity
channelData
ö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 Activity
channelData
ö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 belirtmezsenizchat_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"
}
}
]