2016-05-30 5 views
0

В настоящее время я разрабатываю приложение Office Outlook. Я пытаюсь получить сообщения (особенно вложения сообщений) с сервера Exchange. Я использую приложение Outlook Desktop.Office Outlook Add-In OAuth Error

я уже получил однонаправленного маркера аутентификации и я пытаюсь с помощью Office, REST-API получать сообщения, но есть странная ошибка, если я отправить запрос GET к серверу.

Ошибка: «АНИ вы пытаетесь получить доступ, не поддерживает элемент области действия OAuth

Вот мой JavaScript-код:

 Office.context.mailbox.getCallbackTokenAsync(function (asyncResult) { 
     if (asyncResult.status === "succeeded") { 
      var authToken = asyncResult.value; 
      var attUrl = 'https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/'; 
      $.ajax({ 
       method: "GET", 
       url: attUrl, 
       beforeSend: function (request) { 
        request.setRequestHeader("Accept", "text/*, application/xml, application/json; odata.metadata=none"); 
        request.setRequestHeader("Authorization", "Bearer " + authToken); 
        request.setRequestHeader("X-AnchorMailbox", "[email protected]"); 
       }, 
       success: function (responseData) { 
        console.log("success", responseData); 
       }, 
       error: function (errData) { 
        console.log("err", errData); 
       } 
      }); 
     } 
    }); 

Я сканирование исходящего трафика и кажется, что все в порядке:

GET outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/ HTTP/1.1

Авторизация: TokerItcode

Принять: текст/*, application/xml, application/json; odata.metadata = нет

X-AnchorMailbox: [email protected]

Referer: локальный: 44300/AddInRead/App/Index/Index.html

Accept-Language: де-DE

Происхождение: локальный: 44300

Accept-Encoding: GZIP, выкачать

User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; с.в.: 11,0), как Gecko

Ведущий: outlook.office.com

DNT: 1

соединения: нет Keep-Alive

Cache-Control: нет-кэш

........ .........

Я refered к: Outlook Mail REST-API Reference

и образцы на Перспективы Dev Center OAuth песочнице

Я думаю, что я искал отверстие в Интернет, но не смогли найти ничего , чтобы исправить эту проблему.

Надеюсь, кто-то может дать мне правильный намек.

КСТАТИ: пришлось удалить некоторые ссылки причину не репутации моего счета:/

Спасибо!

ответ

0

Я нашел проблему, и я смог ее исправить.

Существует разница между Access-токен и Токен вы получите, если вы звоните в функцию Office.context.mailbox.getCallbackTokenAsync из REST-API. Я мог видеть, что при входе в Outlook Dev Center OAuth Sandbox с моей собственной учетной записью, получите токен и сравните этот токен с токеном, который я получаю в VS с помощью getCallbackTokenAsync.

Они разные. Токен из функции предназначен только для получения вложений или предметов. В этом случае я думал, что «элементы» - это сообщения, и я могу запустить запрос для всех сообщений с этим токеном, но неправильно. Вы должны взять токен из функции и напрямую обратиться к приложению с помощью https://outlook.office.com/api/v2.0/me/mailfolders/inbox/messages/ '+ idMail +'/attachments/'+ mail.attachments [i] .id;

С уважением

Смежные вопросы