call: playPrompt
命名空间:microsoft.graph
重要
Microsoft Graph版本下的 /beta API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
在呼叫中播放提示。
若要详细了解如何处理操作,请参阅 commsOperation
Permissions
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
不支持。 |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| Application |
Calls.Initiate.All、Calls.AccessMedia.All |
注意: 创建调用时检查权限;调用此 API 时,不会进行其他权限检查。 Calls.AccessMedia.All 仅对于使用应用托管媒体的呼叫是必需的。
HTTP 请求
POST /app/calls/{id}/playPrompt
POST /communications/calls/{id}/playPrompt
注意:/app 路径已弃用。 今后将使用 /communications 路径。
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
| 参数 |
类型 |
说明 |
| prompts |
MediaPrompt 集合 |
要播放的提示。 支持的最大 mediaPrompt 集合大小为 20。 |
| loop |
Boolean |
循环值。 True 表示无限循环。 默认值为 false。 |
| clientContext |
String |
唯一的客户端上下文字符串。 最多可包含 256 个字符。 |
响应
如果成功,此方法在响应 200 OK 正文中返回 响应代码和 playPromptOperation 对象。
示例
以下示例演示如何调用此 API。
请求
下面为请求示例。
POST https://graph.microsoft.com/beta/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/playPrompt
Content-Type: application/json
Content-Length: 166
{
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"prompts": [
{
"@odata.type": "#microsoft.graph.mediaPrompt",
"mediaInfo": {
"@odata.type": "#microsoft.graph.mediaInfo",
"uri": "https://cdn.contoso.com/beep.wav",
"resourceId": "1D6DE2D4-CD51-4309-8DAA-70768651088E"
},
},
],
"loop": false
}
const options = {
authProvider,
};
const client = Client.init(options);
const playPromptOperation = {
clientContext: 'd45324c1-fcb5-430a-902c-f20af696537c',
prompts: [
{
'@odata.type': '#microsoft.graph.mediaPrompt',
mediaInfo: {
'@odata.type': '#microsoft.graph.mediaInfo',
uri: 'https://cdn.contoso.com/beep.wav',
resourceId: '1D6DE2D4-CD51-4309-8DAA-70768651088E'
},
},
],
loop: false
};
await client.api('/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/playPrompt')
.version('beta')
.post(playPromptOperation);
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var clientContext = "d45324c1-fcb5-430a-902c-f20af696537c";
var prompts = new List<Prompt>()
{
new MediaPrompt
{
MediaInfo = new MediaInfo
{
Uri = "https://cdn.contoso.com/beep.wav",
ResourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E"
}
}
};
var loop = false;
await graphClient.Communications.Calls["{call-id}"]
.PlayPrompt(prompts,loop,clientContext)
.Request()
.PostAsync();
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/beta/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/playPrompt"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *clientContext = @"d45324c1-fcb5-430a-902c-f20af696537c";
payloadDictionary[@"clientContext"] = clientContext;
NSMutableArray *promptsList = [[NSMutableArray alloc] init];
MSGraphPrompt *prompts = [[MSGraphPrompt alloc] init];
MSGraphMediaInfo *mediaInfo = [[MSGraphMediaInfo alloc] init];
[mediaInfo setUri:@"https://cdn.contoso.com/beep.wav"];
[mediaInfo setResourceId:@"1D6DE2D4-CD51-4309-8DAA-70768651088E"];
[prompts setMediaInfo:mediaInfo];
[promptsList addObject: prompts];
payloadDictionary[@"prompts"] = promptsList;
BOOL loop = NO;
payloadDictionary[@"loop"] = loop;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
String clientContext = "d45324c1-fcb5-430a-902c-f20af696537c";
LinkedList<Prompt> promptsList = new LinkedList<Prompt>();
MediaPrompt prompts = new MediaPrompt();
MediaInfo mediaInfo = new MediaInfo();
mediaInfo.uri = "https://cdn.contoso.com/beep.wav";
mediaInfo.resourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E";
prompts.mediaInfo = mediaInfo;
promptsList.add(prompts);
Boolean loop = false;
graphClient.communications().calls("57dab8b1-894c-409a-b240-bd8beae78896")
.playPrompt(CallPlayPromptParameterSet
.newBuilder()
.withPrompts(promptsList)
.withLoop(loop)
.withClientContext(clientContext)
.build())
.buildRequest()
.post();
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
clientContext := "d45324c1-fcb5-430a-902c-f20af696537c"
requestBody.SetClientContext(&clientContext)
requestBody.SetPrompts( []Prompt {
msgraphsdk.NewPrompt(),
SetAdditionalData(map[string]interface{}{
"@odata.type": "#microsoft.graph.mediaPrompt",
}
}
loop := false
requestBody.SetLoop(&loop)
callId := "call-id"
result, err := graphClient.Communications().CallsById(&callId).PlayPrompt(call-id).Post(requestBody)
Import-Module Microsoft.Graph.CloudCommunications
$params = @{
ClientContext = "d45324c1-fcb5-430a-902c-f20af696537c"
Prompts = @(
@{
"@odata.type" = "#microsoft.graph.mediaPrompt"
MediaInfo = @{
"@odata.type" = "#microsoft.graph.mediaInfo"
Uri = "https://cdn.contoso.com/beep.wav"
ResourceId = "1D6DE2D4-CD51-4309-8DAA-70768651088E"
}
}
)
Loop = $false
}
Invoke-MgPlayCommunicationCallPrompt -CallId $callId -BodyParameter $params
响应
下面展示了示例响应。
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Location: https://graph.microsoft.com/beta/communications/calls/57dab8b1-894c-409a-b240-bd8beae78896/operations/0fe0623f-d628-42ed-b4bd-8ac290072cc5
{
"@odata.type": "#microsoft.graph.playPromptOperation",
"id": "0fe0623f-d628-42ed-b4bd-8ac290072cc5",
"status": "running",
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c"
}
通知 - 操作已完成
注意: 如果发生无限循环,则不发送此通知。
POST https://bot.contoso.com/api/calls
Content-Type: application/json
{
"@odata.type": "#microsoft.graph.commsNotifications",
"value": [
{
"@odata.type": "#microsoft.graph.commsNotification",
"changeType": "deleted",
"resourceUrl": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"resourceData": {
"@odata.type": "#microsoft.graph.playPromptOperation",
"@odata.id": "/communications/calls/57DAB8B1894C409AB240BD8BEAE78896/operations/0FE0623FD62842EDB4BD8AC290072CC5",
"@odata.etag": "W/\"54451\"",
"clientContext": "d45324c1-fcb5-430a-902c-f20af696537c",
"status": "completed"
}
}
]
}