2017-01-13 3 views
0

У меня есть приложение, которое синхронизируется с учетными записями Microsoft Outlook. Он работал очень хорошо в начале прошлой ночью, но в последнее время работать, чтобы проблема: каждый раз, когда я делаю вызов API я получаю эту ошибку:Что означает «Почтовая ящик Info Stale» при возврате из Microsoft Outlook Mail API?

{"error"=>{"code"=>"MailboxInfoStale", "message"=>"Mailbox info is stale."}} 

Я знаю то, что почтовый ящик, который я m тестирование с не устарело, так как оно было посещено и использовано менее часа назад. Вот мой код:

# Get the emails between the user and the prospect 
# We need to be aware of the user's MS email address, which is possible different than the one we have 
# for them. 

user_email = user_email || get_user_email(token, context) 

if token 
    conn = Faraday.new(:url => "https://outlook.office.com") do |faraday| 
    faraday.response :logger 
    faraday.adapter Faraday.default_adapter 
    end 

    response = conn.get do |request| 
    request.url "/api/v2.0/Me/Messages?$search=%22from:#{prospect_email}%22&$top=20" 
    request.headers['Authorization'] = "Bearer #{token['token']}" 
    request.headers['Accept'] = 'application/json' 
    request.headers['X-AnchorMailbox'] = user_email 
    end 

    # Okay, this is great: MS tells us to JSON parse what they return, but whether or not they return valid JSON depends on the state of the 
    # data that you request, so we'll force it by wrapping it in '[]'. 
    parsed_response = JSON.parse("[#{response.body}]") 

    if parsed_response[0]["value"].blank? 
    # Returns an empty array because we're combining this method and #get_emails in API::ActivitiesController 
    return [] 
    else 
    messages = parsed_response[0]["value"] 
    end 
end 

Почему MS вернуть MailboxInfoStale?

ответ

0

У меня были подобные проблемы, и я удалил заголовок X-AnchorMailbox (который был заполнен неправильным значением для меня), чтобы исправить его.

1

Изменение заголовка X-AnchorMailbox работало для меня.

0

X-AnchorMailbox должен быть установлен на адрес электронной почты, подключенный к вашим учетным данным, например токен доступа OAuth. Они отличаются друг от друга, вы получите эту ошибку. Конечно, это можно устранить, удалив заголовок, но это может привести к неправильному доступу к почтовому ящику (если у вас более одного экземпляра).

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