У меня есть приложение, которое годами работает с OneNote, но в последнее время пользователи жалуются на периодически возникающие проблемы при сохранении новых страниц. После некоторой отладки мы обнаружили, что API OneNote возвращает 401 несанкционированный ответ со следующим телом:
{
"error":{
"code":"40001",
"message":"The request does not contain a valid authentication token.",
"@api.url":"https://aka.ms/onenote-errors#C40001"
}
}
Конечно, все наши запросы отправляются с правильным заголовком Authorization: Bearer J...X
. Если мы повторим неудачный запрос несколько раз, он в конечном итоге пройдет правильно.
Мы используем следующую конечную точку OAuth: https://login.live.com/oauth20_authorize.srf
Это наши области действия: wl.basic, wl.signin, wl.offline_access, office.onenote_create, office.onenote_update_by_app
Вот пример запроса для получения записных книжек пользователя:
1-я попытка:
[~]$ curl -XGET -H 'Authorization: Bearer Ew...I=' "https://www.onenote.com/api/v1.0/notebooks?\$select=id,name,userRole,isDefault&\$expand=sections,sectionGroups"
{
"error": {
"code": "40001",
"message": "The request does not contain a valid authentication token.",
"@api.url": "https://aka.ms/onenote-errors#C40001"
}
}
2-я попытка:
[~]$ curl -XGET -H 'Authorization: Bearer Ew...I=' "https://www.onenote.com/api/v1.0/notebooks?\$select=id,name,userRole,isDefault&\$expand=sections,sectionGroups"
{
"@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks(id,name,userRole,isDefault,sections,sectionGroups)","value":[
{
"id":"0-123123E123123123!831","name":"Jacket's Notebook","userRole":"Owner","isDefault":true,"sections@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks('0-123123E123123123%21831')/sections","sections":[
{
"id":"0-123123E123123123!833","self":"https://www.onenote.com/api/v1.0/me/notes/sections/0-123123E123123123!833","createdTime":"2019-10-08T08:42:38.043Z","name":"Quick Notes","createdBy":"Jacket","lastModifiedBy":"Jacket","lastModifiedTime":"2019-10-08T09:59:26.173Z","isDefault":true,"pagesUrl":"https://www.onenote.com/api/v1.0/me/notes/sections/0-123123E123123123!833/pages","size":0
}
],"sectionGroups@odata.context":"https://www.onenote.com/api/v1.0/$metadata#me/notes/notebooks('0-123123E123123123%21831')/sectionGroups","sectionGroups":[
]
}
]
}
Без каких-либо изменений в запросе, мыполучить два разных ответа. Это похоже на ограничение скорости, хотя мы не делаем почти столько же запросов, чтобы вызвать что-то подобное, и ошибка ясно говорит о том, что это проблема с токеном. Но токен такой же и не обновляется между запросами.
Я застрял сейчас. Пожалуйста, помогите!