Bot Connector API를 사용하여 메시지에 미디어 첨부 파일 추가
일반적으로 봇 및 채널은 텍스트 문자열을 교환하지만, 일부 채널은 첨부 파일 교환도 지원하므로 이를 통해 봇에서 사용자에게 더 다양한 메시지를 보낼 수 있습니다. 예를 들어 봇은 미디어 첨부 파일(예: 이미지, 비디오, 오디오, 파일) 및 서식 있는 카드를 보낼 수 있습니다. 이 문서에서는 Bot Connector 서비스를 사용하여 미디어 첨부 파일을 메시지에 추가하는 방법을 설명합니다.
팁
각 채널에서 지원되는 기능에 대한 자세한 내용은 채널 참조 문서를 참조하세요.
미디어 첨부 파일 추가
메시지에 미디어 첨부 파일을 추가하려면 Attachment 개체를 만들고, 속성을 설정하고name
, 속성을 미디어 파일의 URL로 설정하고contentUrl
, 속성을 적절한 미디어 형식(예: image/jpg, audio/wav, video/mp4)으로 설정합니다contentType
. 그런 다음, 메시지를 나타내는 Activity 개체 내에서 attachments
배열 내에 Attachment
개체를 지정합니다.
다음 예제에서는 텍스트와 단일 이미지 첨부 파일을 포함하는 메시지를 보내는 요청을 보여 줍니다. 이 예제 요청에서 https://smba.trafficmanager.net/teams
는 기본 URI를 나타냅니다. 봇이 실행하는 요청의 기본 URI는 다를 수 있습니다. 기본 URI를 설정하는 방법에 대한 자세한 내용은 API 참조를 참조하세요.
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"
}
이미지의 인라인 이진 파일을 지원하는 채널의 경우 의 속성을 이미지의 Attachment
base64 이진 파일로 설정할 contentUrl
수 있습니다(예: data:image/jpg; base64,iVBORw0KGgo...). 채널은 메시지의 텍스트 문자열 옆에 이미지 또는 이미지의 URL을 표시합니다.
{
"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"
}
이미지 파일에 대해 위에서 설명한 것과 동일한 프로세스를 사용하여 비디오 파일 또는 오디오 파일을 메시지에 첨부할 수 있습니다. 채널에 따라, 비디오 및 오디오가 인라인으로 재생되거나 링크로 표시될 수 있습니다.
참고
또한 봇에서 미디어 첨부 파일을 포함하는 메시지도 받을 수 있습니다. 예를 들어, 채널에서 사용자가 분석할 사진 또는 저장할 문서를 업로드하도록 허용할 경우 봇이 수신하는 메시지에 첨부 파일이 포함될 수 있습니다.
AudioCard 첨부 파일 추가
AudioCard 또는 VideoCard 첨부 파일을 추가하는 것은 미디어 첨부 파일을 추가하는 것과 같습니다. 예를 들어, 다음 JSON은 미디어 첨부 파일에 오디오 카드를 추가하는 방법을 보여 줍니다.
{
"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"
}
채널이 이 첨부 파일을 받으면 오디오 파일 재생이 시작됩니다. 예를 들어 사용자가 일시 중지를 선택하여 오디오와 상호 작용하는 경우 채널은 다음과 같은 JSON을 사용하여 봇에 콜백을 보냅니다.
{
...
"type": "event",
"name": "media/pause",
"value": {
"url": // URL for media
"cardValue": {
// Supplementary parameter for this card
}
}
}
미디어 이벤트 이름 media/pause가 activity.name
필드에 표시됩니다. 모든 미디어 이벤트 이름 목록은 아래 표를 참조하세요.
이벤트 | Description |
---|---|
media/next | 클라이언트가 다음 미디어로 건너뜀 |
media/pause | 클라이언트가 미디어 재생을 일시 중지함 |
media/play | 클라이언트가 미디어 재생을 시작함 |
media/previous | 클라이언트가 이전 미디어로 건너뜀 |
media/resume | 클라이언트가 미디어 재생을 다시 시작함 |
media/stop | 클라이언트가 미디어 재생을 중지함 |