Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
I denne artikel beskrives det, hvordan du downloader vedhæftede filer fra en ai-agent (Azure bot), der bruges i Omnichannel til Dynamics 365 Customer Service.
Følg disse trin for at downloade vedhæftede filer fra en Azure bot i Omnichannel.
Hent tokenet til din bot ved hjælp af din bots Microsoft App ID og klienthemmelighed.
attachmentIdHent fra -matrixenamsReferencesi aktivitetens kanaldata.Hvis f.eks.
amsReferencesindeholder["0-eus-d1-5360689c55c308cb4e3b51722e46b801"], erattachmentId.0-eus-d1-5360689c55c308cb4e3b51722e46b801attachmentIdIndsæt i enRequestUrivariabel, og brugRequestUriderefter i enGETanmodning på følgende måde:
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>);
httpRequest.Headers.Authorization = authorization;
httpRequest.Headers.Add("BotAcsId", activity.Recipient.Id);
HttpResponseMessage response = await client.SendAsync(httpRequest);
Administrer vedhæftede filer
Notat
Oplysningerne i dette afsnit gælder kun for GCC (Government Community Cloud).
I dette afsnit beskrives det, hvordan du administrerer vedhæftede filer på meddelelsesplatformen for Omnichannel-agenttjenesten.
Lad os først hurtigt gennemgå formater for vedhæftede filer i Tjenestekanalen Omnichannel Agent.
Formater for vedhæftede filer
Når vedhæftede filer sendes fra Dynamics 365 Contact Center til den Azure agent på Tjenestekanalen Omnichannel Agent, overføres de oplysninger, der kræves for at hente filerne, i felterne amsReferences og amsMetadata for egenskaben Activity.ChannelData.
Omnichannel-agent tjenestekanal
{
"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"
}
}
Sådan administrerer du vedhæftede filer i din Azure agentkode
Oplysninger om vedhæftede filer overføres i Tjenestekanalen Omnichannel Agent og kan tilgås i agentkode, som vist i følgende eksempel.
// 1. Retrieve Attachment ID from ChannelData["amsReferences"]
if (activity.ChannelData != null &&
activity.ChannelData is Dictionary<string, JsonElement> channelData &&
channelData.TryGetValue("amsReferences", out var amsReferencesElement))
{
var amsReferencesString = amsReferencesElement.GetString() ?? amsReferencesElement.ToString();
string attachmentId = JsonConvert.DeserializeObject<string[]>(amsReferencesString).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
// Option A: Using IConnections (recommended)
var connection = connections.GetConnection("ServiceConnection");
var token = await connection.GetAccessTokenAsync(
"https://api.botframework.com",
new[] { "https://api.botframework.com/.default" },
forceRefresh: false);
// Option B: Using OAuth client credentials flow
// var tokenRequest = new HttpRequestMessage(HttpMethod.Post, $"https://login.microsoftonline.com/{tenantId}/oauth2/v2.0/token")
// {
// Content = new FormUrlEncodedContent(new Dictionary<string, string>
// {
// { "grant_type", "client_credentials" },
// { "client_id", botAppId },
// { "client_secret", botAppSecret },
// { "scope", "https://api.botframework.com/.default" }
// })
// };
// var tokenResponse = await client.SendAsync(tokenRequest);
// var tokenContent = await tokenResponse.Content.ReadAsStringAsync();
// var token = JsonConvert.DeserializeObject<dynamic>(tokenContent).access_token;
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", 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))
{
await responseContentStream.CopyToAsync(fileCreateStream);
}
}
Relaterede oplysninger
Card-understøttelse efter kanal
Understøttelse af livechat og asynkrone kanaler