【发布时间】:2020-03-06 15:30:29
【问题描述】:
我正在尝试替换当前使用“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 中的变量中。
我还尝试使用link 中的示例在 Postman 中运行此代码,该示例还包含 C# 示例。 Postman 返回完全相同的错误。
我还可以确认我已获得管理员同意授予的 Calls.Initialte API 权限。
【问题讨论】:
-
能否请您检查权限是否已获得管理员同意?
-
是的,我可以确认我已获得 Calls.Initiate API 的管理员许可。我已更新问题以反映这一点。
-
Calls.JoinGroupCallsasGuest.All, Calls.JoinGroupCalls.All, Calls.Initiate.All, Calls.InitiateGroupCalls.All 你是否同意我看不到的权限,我可以看到只有两个..对于使用应用托管媒体的呼叫,除了列出的权限之一之外,您还需要 Calls.AccessMedia.All 权限
-
能否确认一下,如果您仍然面临这个问题?
-
您在注册机器人时是否为您的机器人启用了calling feature?
标签: microsoft-graph-api microsoft-teams