Outlook Task REST API-未授权401

时间:2019-02-20 14:37:36

标签: rest api powershell outlook

我正在尝试从Powershell访问Outlook Rest API 2.0以查看和创建任务。我创建了一个应用程序,并成功检索了access_token和所需的作用域(Tasks.ReadWrite)。查看我的回复:

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

1 个答案:

答案 0 :(得分:1)

这不是在标头中传输承载令牌的正确方法。我不是这方面的专家,但是RFC 6750说您应该使用String fullName = "Peter van Der Schyff"; String firstname = fullName.split(" ")[0]; String surname = fullname.substring(fullName.indexOf(' ')); 方法将Authorization标头发送给它,如下所示:

Bearer