Я перехожу по этой ссылке, чтобы подключиться к Microsoft Teams с помощью токенов доступа:
Https://learn.microsoft.com/en-us/MicrosoftTeams/teams-powershell-application-authentication
Вот код:
$ClientSecret = 'xxxxx~xx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
$ApplicationID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
$TenantID = 'xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx'
$graphtokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $ApplicationID
Client_Secret = $ClientSecret
}
$graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token
$teamstokenBody = @{
Grant_Type = "client_credentials"
Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default"
Client_Id = $ApplicationID
Client_Secret = $ClientSecret
}
$teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token
Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
Приложение зарегистрировано в Azure AD, и ему назначены разрешения API, как указано в статье. Я также назначил приложению роль администратора Teams. Токены заполняются корректно.
Запуск кода приводит к следующей ошибке:
Connect-MicrosoftTeams : Object reference not set to an instance of an object.
At line:29 char:1
+ Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : AuthenticationError: (:) [Connect-MicrosoftTeams], NullReferenceException
+ FullyQualifiedErrorId : Connect-MicrosoftTeams,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams
Connect-MicrosoftTeams : Object reference not set to an instance of an object.
At line:29 char:1
+ Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : NotSpecified: (:) [Connect-MicrosoftTeams], NullReferenceException
+ FullyQualifiedErrorId : System.NullReferenceException,Microsoft.TeamsCmdlets.Powershell.Connect.ConnectMicrosoftTeams
Если у кого-то была эта проблема и он успешно решил ее или у вас есть несколько советов, как ее решить, пожалуйста, помогите.
Я попытался воспроизвести то же самое в своей среде и получил ту же ошибку, что и ниже:
Ошибка обычно возникает, если версия команд Microsoft, которую вы пытаетесь подключить, старше версии 4.7.1-preview.
Чтобы устранить эту ошибку, попробуйте обновить версию Microsoft Teams PowerShell до 4.7.1-preview или более поздней версии, и этот тип проверки подлинности поддерживается только в коммерческих средах.
Get-InstalledModule -Name MicrosoftTeams
Update-Module -Name MicrosoftTeams
После обновления модуля PowerShell я могу успешно подключиться к Microsoft Teams, как показано ниже:
$ClientSecret = "ClientSecret"
$ApplicationID = "AppID"
$TenantID = "TenantID"
$graphtokenBody = @{
Grant_Type = "client_credentials"
Scope = "https://graph.microsoft.com/.default"
Client_Id = $ApplicationID
Client_Secret = $ClientSecret
}
$graphToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $graphtokenBody | Select-Object -ExpandProperty Access_Token
$teamstokenBody = @{
Grant_Type = "client_credentials"
Scope = "48ac35b8-9aa8-4d74-927d-1f4a14a0b239/.default"
Client_Id = $ApplicationID
Client_Secret = $ClientSecret
}
$teamsToken = Invoke-RestMethod -Uri "https://login.microsoftonline.com/$TenantID/oauth2/v2.0/token" -Method POST -Body $teamstokenBody | Select-Object -ExpandProperty Access_Token
Connect-MicrosoftTeams -AccessTokens @("$graphToken", "$teamsToken")
Ссылка:
Галерея PowerShell | MicrosoftTeams 4.9.1
Ваш ответ привел меня в правильном направлении для решения проблемы. В моем случае речь не шла об установке новой версии модуля MicrosoftTeams, который уже был у меня на машине (версия 4.9.1). Я заметил, что более старые версии модуля Teams 4.3 и 4.6 все еще зависают от более ранних установок. Удаление этих старых версий помогло. Спасибо.