使用场景
接上文Microsoft Graph API获取访问令牌,使用访问令牌调用创建联机会议接口,接口返回error信息如下,提示找不到应用程序访问策略。
{
"error": {
"code": "General",
"message": "No Application Access Policy found for this app.",
"innerError": {
"request-id": "fc80c130-7724-482c-8cb6-0af01822faed",
"date": "2023-03-29T03:37:28",
"client-request-id": "fc80c130-7724-482c-8cb6-0af01822faed"
}
}
}
官方文档说明如下,故需要创建应用程序访问策略。
要对此 API 使用应用程序权限,租户管理员必须创建一个 应用程序访问策略,并将其授予用户,以授权策略中配置的应用代表该用户创建联机会议(使用请求路径中指定的用户 ID)
安装 Microsoft Teams PowerShell 模块
1. 更新PowerShell版本
Microsoft Teams PowerShell 模块要求在所有平台上使用 PowerShell 5.1 或更高版本。打开Windows PowerShell,查看版本号。
$PSVersionTable.PSVersion
返回结果显示版本为5.1,符合要求。
Major Minor Build Revision
----- ----- ----- --------
5 1 22000 1335
2. 更新PowerShellGet
Install-Module -Name PowerShellGet -Force -AllowClobber
返回错误信息,提示未安装NuGet。
安装NuGet后,重新更新PowerShellGet
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
Install-PackageProvider -Name NuGet -MinimumVersion '2.8.5.201' -Force
3. 安装Teams PowerShell 模块
Install-Module -Name MicrosoftTeams -Force -AllowClobber
4. 使用管理员凭据连接
4.1 引入MicrosoftTeams模块
Import-Module MicrosoftTeams
引入MicrosoftTeams模块时可能会报错误信息:
执行该命令后即可正常引入。
set-executionpolicy remotesigned
4.2 设置Windows PowerShell凭据
在弹出的Windows PowerShell凭据页面输入管理员用户密码。
$userCredential = Get-Credential
4.3 登录MicrosoftTeams
Connect-MicrosoftTeams -Credential $userCredential
应用程序访问策略
1. 创建应用访问策略
-Identity、-AppIds、Description 的值根据实际修改。
New-CsApplicationAccessPolicy -Identity Meeting-policy -AppIds "123123" -Description "应用程序访问策略"
2. 授权用户
-PolicyName、-Identity的值根据实际修改。
授权只能单个用户授权,如果用户较多,可使用授权租户。
Grant-CsApplicationAccessPolicy -PolicyName Meeting-policy -Identity "123123"
3. 授权租户
Grant-CsApplicationAccessPolicy -PolicyName Meeting-policy -Global