microsoft-graph-api - 无法使用 Microsoft Graph 和 Teams 创建 VoIP 呼叫
问题描述
我正在尝试替换当前使用“Skype For Business/Lync”的 .NET 应用程序中现有的单击拨号功能,并将其切换为“Microsoft Teams”。看起来好像网上没有很多这样的例子。我发现的例子似乎对我不起作用。在多个来源中显示的示例如下:
IConfidentialClientApplication confidentialClientApplication = ConfidentialClientApplicationBuilder
.Create(clientId)
.WithTenantId(tenantID)
.WithClientSecret(clientSecret)
.Build();
ClientCredentialProvider authProvider = new ClientCredentialProvider(confidentialClientApplication);
GraphServiceClient graphClient = new GraphServiceClient(authProvider);
var call = new Call
{
CallbackUri = redirectUri,
Targets = new List<InvitationParticipantInfo>()
{
new InvitationParticipantInfo
{
Identity = new IdentitySet
{
User = new Identity
{
DisplayName = "John",
Id = userId
}
}
}
},
RequestedModalities = new List<Modality>()
{
Modality.Audio
},
MediaConfig = new ServiceHostedMediaConfig
{
}
};
var response = graphClient.Communications.Calls
.Request()
.AddAsync(call).GetAwaiter().GetResult();
此代码最终返回错误
Message: {"errorCode":"7503","message":"Application is not registered in our store.","instanceAnnotations":[]}
关于此错误的文档不多。我已经在 Azure Active Directory 中注册了一个机器人,并将所有必要的值插入到上面 snippen 中的变量中。
我还尝试使用此链接中的示例在 Postman 中运行此代码,该示例还包含 C# 示例。邮递员返回完全相同的错误。
我还可以确认我已获得管理员同意授予的 Calls.Initialte API 权限。
解决方案
创建呼叫使您的机器人可以创建点对点或群组呼叫,您需要注册您的呼叫机器人并分配以下应用程序权限:
Calls.JoinGroupCallsasGuest.All, Calls.JoinGroupCalls.All,
Calls.Initiate.All, Calls.InitiateGroupCalls.All
1. 使用服务托管媒体创建点对点 VoIP 呼叫
Note: This call needs the Calls.Initiate.All Application permission.
在注册您的 Bot 时,您需要为您的 Bot 启用呼叫功能并让您的 bot 参与音频和视频通话您需要supportsCalling
在supportsVideo
您true
的应用清单中进行设置。
推荐阅读
- html - HTML:在另一个文本上方创建文本 bootstrap 4
- python - 当orderdict的超类调用popitem时出现关键错误
- python - 使用 keras 中的图像数据生成器进行图像数据增强
- python - wav文件的特征提取
- python - 为什么在python中使用与按钮绑定的AttributeError
- reactjs - 电子不渲染反应路线
- regex - 如何修复 sed 正则表达式、空格或 EOL?
- jenkins - 配置 Jenkins 在一定时间后提醒 Slack?
- javascript - 无法让在 JSFiddle 上工作的代码脱机工作
- php - 如何使用 Vue.js 在 Laravel 中对表格进行排序