У меня проблемы с отладкой. Эта проблема возникает при отправке новых событий в Календарь Outlook с помощью Microsoft Graph API (v1).Я проверил, и это все еще работает, но я получил эту ошибку, которая произошла сегодня несколько раз из моих приложений Ruby on Rails с гемами, упомянутыми в фрагменте кода ниже.И после этих ошибок в календарь добавляются повторяющиеся события.Я искал эту проблему, но все еще ничего не получил.Может ли кто-нибудь помочь мне отладить эту проблему, пожалуйста?Я просто не знаю, была ли эта проблема вызвана действиями моих пользователей или просто ошибкой сервера API.Большое спасибо!
OData :: ServerError 503 ConcurrentItemSave: «При сохранении данных для сохранения возникли конфликты (saveresult: IrresolvableConflict, properties:). Пожалуйста, повторите запрос».from "https://graph.microsoft.com/v1.0/me/calendars/AAMkADg1YmMzNjE2LTM5Y2MtNGI2NC05NjJjLWRiY2RhZTZkNDRkMABGAAAAAADZc5aq6QclSqy_4oRMVv_EBwB4ZnW6S6xLTZDSXIsgJfprAAAAAAEGAAB4ZnW6S6xLTZDSXIsgJfprAAAGEcjmAAA=/events"
Код, который я использую для создания событий через API
require 'adal'
require 'microsoft_graph'
username = ENV["OUTLOOK_USERNAME"]
password = ENV["OUTLOOK_PASSWORD"]
client_id = ENV["OUTLOOK_CLIENT_ID"]
client_secret = ENV["OUTLOOK_CLIENT_SECRET"]
tenant = ENV["OUTLOOK_TENANT"]
user_cred = ADAL::UserCredential.new(username, password)
client_cred = ADAL::ClientCredential.new(client_id, client_secret)
context = ADAL::AuthenticationContext.new(ADAL::Authority::WORLD_WIDE_AUTHORITY, tenant)
resource = "https://graph.microsoft.com/"
tokens = context.acquire_token_for_user(resource, client_cred, user_cred)
callback = Proc.new { |r|
r.headers["Authorization"] = "Bearer #{tokens.access_token}"
r.headers["Prefer"] = 'outlook.timezone="Australia/Sydney"'
r.headers['Content-type'] = 'application/json'
}
@graph = MicrosoftGraph.new(
base_url: "https://graph.microsoft.com/v1.0",
cached_metadata_file: File.join(MicrosoftGraph::CACHED_METADATA_DIRECTORY, "metadata_v1.0.xml"),
&callback
)
#example_data
calendar_id = "my_calendar_id"
data = my_event_object
@graph.service.post("me/calendars/#{calendar_id}/events", data.to_json)