Bot BağlayıcıSı API'siyle iletilere medya ekleri ekleme
Botlar ve kanallar genellikle metin dizelerini değiştirir, ancak bazı kanallar eklerin değişimini de destekler ve bu da botunuzun kullanıcılara daha zengin iletiler göndermesine olanak tanır. Örneğin botunuz medya ekleri (görüntüler, videolar, ses, dosyalar gibi) ve zengin kartlar gönderebilir. Bu makalede, Bot Bağlayıcısı hizmetini kullanarak iletilere medya eklerinin nasıl ekleneceği açıklanır.
İpucu
Her kanalda hangi özelliklerin desteklendiği hakkında bilgi için kanal başvurusu makalesine bakın.
Medya eki ekleme
İletiye medya eki eklemek için bir Ek nesnesi oluşturun, özelliğini ayarlayınname
, özelliği medya dosyasının URL'sine ayarlayın contentUrl
ve özelliği uygun medya türüne (image/jpg, audio/wav, video/mp4 gibi) ayarlayıncontentType
. Ardından iletinizi temsil eden Activity nesnesinin içinde dizi içinde attachments
nesnenizi Attachment
belirtin.
Aşağıdaki örnekte, metin ve tek bir resim eki içeren bir ileti gönderen bir istek gösterilmektedir. Bu örnek istekte temel https://smba.trafficmanager.net/teams
URI'yi temsil eder; bot sorunlarınızın farklı olabileceği isteklerin temel URI'sini temsil eder. Temel URI'yi ayarlama hakkında ayrıntılı bilgi için bkz. API Başvurusu.
POST https://smba.trafficmanager.net/teams/v3/conversations/abcd1234/activities/5d5cdc723
Authorization: Bearer ACCESS_TOKEN
Content-Type: application/json
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"text": "Here's a picture of the duck I was telling you about.",
"attachments": [
{
"contentType": "image/jpg",
"contentUrl": "https://www.publicdomainpictures.net/pictures/30000/t2/duck-on-a-rock.jpg",
"name": "duck-on-a-rock.jpg"
}
],
"replyToId": "5d5cdc723"
}
Bir görüntünün satır içi ikili dosyalarını destekleyen kanallar için özelliğini görüntünün base64 ikili dosyası olarak ayarlayabilirsiniz contentUrl
Attachment
(örneğin, data:image/jpg; base64,iVBORw0KGgo...). Kanal, iletinin metin dizesinin yanında resmi veya resmin URL'sini görüntüler.
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"text": "Here's a picture of the duck I was telling you about.",
"attachments": [
{
"contentType": "image/jpg",
"contentUrl": "data:image/jpg;base64,iVBORw0KGgo...",
"name": "duck-on-a-rock.jpg"
}
],
"replyToId": "5d5cdc723"
}
Bir görüntü dosyası için yukarıda açıklanan işlemi kullanarak iletiye video dosyası veya ses dosyası ekleyebilirsiniz. Kanala bağlı olarak, video ve ses satır içinde oynatılabilir veya bağlantı olarak görüntülenebilir.
Not
Botunuz medya ekleri içeren iletiler de alabilir. Örneğin, kanal kullanıcının analiz edilecek fotoğrafı veya depolanacak bir belgeyi karşıya yüklemesine olanak sağlıyorsa botunuzun aldığı bir ileti ek içerebilir.
AudioCard eki ekleme
AudioCard veya VideoCard eki eklemek, medya eki eklemekle aynıdır. Örneğin, aşağıdaki JSON medya ekine nasıl ses kartı ekleneceğini gösterir.
{
"type": "message",
"from": {
"id": "12345678",
"name": "sender's name"
},
"conversation": {
"id": "abcd1234",
"name": "conversation's name"
},
"recipient": {
"id": "1234abcd",
"name": "recipient's name"
},
"attachments": [
{
"contentType": "application/vnd.microsoft.card.audio",
"content": {
"title": "Allegro in C Major",
"subtitle": "Allegro Duet",
"text": "No Image, No Buttons, Autoloop, Autostart, Sharable",
"duration": "PT2M55S",
"media": [
{
"url": "https://contoso.com/media/AllegrofromDuetinCMajor.mp3"
}
],
"shareable": true,
"autoloop": true,
"autostart": true,
"value": {
// Supplementary parameter for this card
}
}
}],
"replyToId": "5d5cdc723"
}
Kanal bu eki aldıktan sonra ses dosyasını yürütmeye başlar. Örneğin, bir kullanıcı Duraklat'ı seçerek sesle etkileşim kurarsa, kanal bota aşağıdakine benzer bir JSON içeren bir geri arama gönderir:
{
...
"type": "event",
"name": "media/pause",
"value": {
"url": // URL for media
"cardValue": {
// Supplementary parameter for this card
}
}
}
Medya olay adı medya/duraklatma alanında activity.name
görünür. Tüm medya olay adlarının listesi için aşağıdaki tabloya başvurun.
Olay | Açıklama |
---|---|
media/next | İstemci sonraki medyaya atlandı |
medya/duraklatma | İstemci medya yürütmeyi duraklatmış |
medya/oynatma | İstemci medya yürütmeye başladı |
medya/önceki | İstemci önceki medyaya atlandı |
medya/özgeçmiş | İstemci medya yürütmeye devam etti |
medya/durdurma | İstemci medya yürütmeyi durdurdu |