Outlook任务REST API-未授权401
我正在尝试从Powershell访问Outlook Rest API 2.0以查看和创建任务。我创建了一个应用程序,并且正在成功地检索访问令牌和所需的作用域(Tasks.ReadWrite)。见我的答复:Outlook任务REST API-未授权401,rest,api,powershell,outlook,Rest,Api,Powershell,Outlook,我正在尝试从Powershell访问Outlook Rest API 2.0以查看和创建任务。我创建了一个应用程序,并且正在成功地检索访问令牌和所需的作用域(Tasks.ReadWrite)。见我的答复: token_type : Bearer scope : openid Tasks.ReadWrite expires_in : 3600 ext_expires_in : 3600 access_token : token_value id_token
token_type : Bearer
scope : openid Tasks.ReadWrite
expires_in : 3600
ext_expires_in : 3600
access_token : token_value
id_token : id_token_value
当我试图获取任务列表时,我得到了401响应(未授权)。请参阅下面的powershell代码:
$header = @{"Bearer" = "$($response.access_token)"}
$task_list = Invoke-RestMethod -Method Get -Header $Header -Uri" https://outlook.office.com/api/v2.0/me/tasks"
例外情况如下:
Invoke-RestMethod : the remote server returned an error (401) unauthorized
+ $task_list = Invoke-RestMethod -Method Get -Header $Header -Uri "https ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMetho
d], WebException
+ FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCo
mmand
这不是在报头中传输承载令牌的正确方法。我不是这方面的专家,但我说你应该用
授权
头和承载
方法来传输它,如下所示:
$header = @{"Authorization" = "Bearer $($response.access_token)"}
我用这个头颅得到了完全相同的反应你检查了什么?除了不正确的身份验证头(TToni指给你看)之外,我没有看到你尝试过的其他东西。AzureAD中此应用程序的权限是否正确?