API-интерфейс REST Task Outlook - не авторизован 401 - PullRequest
0 голосов
/ 20 февраля 2019

Я пытаюсь получить доступ к Outlook Rest API 2.0 из Powershell для просмотра и создания задач.Я создал приложение и успешно извлекаю 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 голосов
/ 20 февраля 2019

Это неправильный метод для передачи токена-носителя в заголовке.Я не эксперт в этом вопросе, но RFC 6750 говорит, что вы должны передавать его с заголовком Authorization методом Bearer, например:

$header = @{"Authorization" = "Bearer $($response.access_token)"}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...