หมายเหตุ
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลอง ลงชื่อเข้าใช้หรือเปลี่ยนไดเรกทอรีได้
การเข้าถึงหน้านี้ต้องได้รับการอนุญาต คุณสามารถลองเปลี่ยนไดเรกทอรีได้
ทําตามขั้นตอนเหล่านี้เพื่อดาวน์โหลดไฟล์แนบจากบอท Azure ใน Omnichannel
รับโทเค็นสําหรับบอทของคุณ โดยใช้รหัสแอป Microsoft และความลับของไคลเอ็นต์ของบอทของคุณ
รับ
attachmentIdจาก URL ของสิ่งที่แนบมาตัวอย่างเช่น ถ้า URL คือ
https://us-api.asm.skype.com/v1/objects/0-eus-d1-5360689c55c308cb4e3b51722e46b801/จะเป็นattachmentId0-eus-d1-5360689c55c308cb4e3b51722e46b801attachmentIdแทรก ในRequestUriตัวแปร แล้วใช้RequestUriในGETคําขอ ดังนี้:string requestUri = $"https://botapi.skype.com/amer/v3/attachments/{attachmentId}/views/original"; var httpRequest = new HttpRequestMessage(HttpMethod.Get, requestUri); var authorization = new AuthenticationHeaderValue("bearer", <add the botToken here>); var requestHeaders = new Dictionary<string, string>() { { "Authorization", authorization.ToString() } }; foreach (var header in requestHeaders) { httpRequest.Headers.Add(header.Key, header.Value); } HttpResponseMessage response = await client.SendAsync(httpRequest);
จัดการสิ่งที่แนบมาของแฟ้ม
Note
ข้อมูลในส่วนนี้สามารถใช้ได้กับ Government Community Cloud (GCC) เท่านั้น
ในส่วนนี้จะอธิบายวิธีจัดการสิ่งที่แนบมาของไฟล์ในแพลตฟอร์มการรับส่งข้อความของบริการบอท Omnichannel
ก่อนอื่น เรามาตรวจสอบรูปแบบไฟล์ที่แนบมาอย่างรวดเร็วในช่องทางบริการบอท Omnichannel
รูปแบบไฟล์ที่แนบมา
เมื่อไฟล์แนบถูกส่งจากศูนย์ติดต่อ Dynamics 365 ไปยังบอท Azure บนช่องทางบริการบอท Omnichannel ข้อมูลที่จําเป็นในการดาวน์โหลดไฟล์จะถูกส่งผ่านใน amsReferences เขตข้อมูล และ amsMetadata ของ Activity.ChannelData คุณสมบัติ
ช่องทางบริการบอท Omnichannel
{
"recipient":{
"id":"8:acs:5ecf37b1-11 Oc-414g-ab33-804ffd6b4a33_eooe0010-7c57-1ceb-nec-113aOdOOb272",
"name":"Omnichannel-test-bot",
"aadObjectId":null,
"role":null
},
"attachments ":null,
"channelData":{
"tags":"Channelld-lcw,FromCustomer",
"deliveryMode":"bridged",
"fromUserId":"8:acs:5ecf37b1-110c-4149-ab33-804ffd6b4a33_00000010-61 b9-ab1 d-3dfe-9c3aOd009ea4",
"amsReferences":[
"0-wus-d6-20e7797d208fab388cc11b09674d166"
],
"amsMetadata":[
{
"contentType":"image/png",
"fileName":"SurnmerTime.png"
}
],
"sourceChannelId":"omnichannel"
}
}
วิธีการจัดการไฟล์แนบในรหัสบอท Azure ของคุณ
ข้อมูลไฟล์แนบจะถูกส่งผ่านช่องทางบริการบอท Omnichannel และสามารถเข้าถึงได้ในรหัสบอท ดังที่แสดงในตัวอย่างต่อไปนี้
// 1. Retrieve Attachment ID from ChannelData["amsReferences"]
if (turnContext.Activity.ChannelData != null &&
turnContext.Activity.ChannelData is JObject incomingRequestChannelData &&
incomingRequestChannelData.TryGetValue("amsReferences", out JToken amsReferencesArray))
{
string attachmentId = JsonConvert.DeserializeObject<string[]>(amsReferencesArray.ToString()).FirstOrDefault();
// 2. Build HTTP request for specified attachment ID.
string requestUri = $"https://botapi.skype.com/amer/v3/attachments/{attachmentId}/views/original";
var httpRequest = new HttpRequestMessage(HttpMethod.Get, requestUri);
// 3. Acquire authentication token and add it to request headers
var token = await new MicrosoftAppCredentials("botAppId", "botAppSecret").GetTokenAsync();
var authorization = new AuthenticationHeaderValue("bearer", token);
httpRequest.Headers.Add("Authorization", authorization.ToString());
// 4. Add Azure Communication Services Bot ID to request header. This is required to achieve good download performance.
httpRequest.Headers.Add("BotAcsId", turnContext.Activity.Recipient.Id);
// 5. Use HttpClient to execute the request and download attachment
var response = await client.SendAsync(httpRequest);
// 6. Save HTTP response stream to the file
var responseContentStream = await response.Content.ReadAsStreamAsync();
using (FileStream fileCreateStream = new FileStream("file path", FileMode.Create))
{
fileCreateStream.CopyTo(responseContentStream);
}
}
ข้อมูลที่เกี่ยวข้อง
การสนับสนุนการ์ดโดยช่อง
การรองรับช่องทางการสนทนาสดและช่องทางแบบอะซิงโครนัส