Для вызова этого API требуется одно из следующих разрешений. Дополнительные сведения, включая сведения о том, как выбрать разрешения, см. в статье Разрешения.
Тип разрешения
Разрешения (в порядке повышения привилегий)
Делегированные (рабочая или учебная учетная запись)
User.ReadWrite.All
Делегированные (личная учетная запись Майкрософт)
Не поддерживается.
Приложение
UserShiftPreferences.ReadWrite.All
Примечание. Этот API поддерживает разрешения администратора. Глобальные администраторы могут получать доступ к группам, членом которых они не являются.
HTTP-запрос
PATCH /users/{userId}/settings/shiftPreferences
Заголовки запросов
Заголовок
Значение
Авторизация
Носитель {token}. Обязательно.
Content-Type
application/json. Обязательно.
Текст запроса
В тексте запроса укажите представление объекта shiftPreferences в формате JSON.
Отклик
В случае успешного выполнения этот метод возвращает код отклика 204 NO CONTENT.
// Code snippets are only available for the latest version. Current version is 5.x
var graphClient = new GraphServiceClient(requestAdapter);
var requestBody = new ShiftPreferences
{
Id = "SHPR_eeab4fb1-20e5-48ca-ad9b-98119d94bee7",
Availability = new List<ShiftAvailability>
{
new ShiftAvailability
{
Recurrence = new PatternedRecurrence
{
Pattern = new RecurrencePattern
{
Type = RecurrencePatternType.Weekly,
DaysOfWeek = new List<DayOfWeekObject?>
{
DayOfWeekObject.Monday,
DayOfWeekObject.Wednesday,
DayOfWeekObject.Friday,
},
Interval = 1,
},
Range = new RecurrenceRange
{
Type = RecurrenceRangeType.NoEnd,
},
},
TimeZone = "Pacific Standard Time",
TimeSlots = null,
},
},
AdditionalData = new Dictionary<string, object>
{
{
"@odata.etag" , "1a371e53-f0a6-4327-a1ee-e3c56e4b38aa"
},
},
};
var result = await graphClient.Users["{user-id}"].Settings.ShiftPreferences.PatchAsync(requestBody);
<?php
// THIS SNIPPET IS A PREVIEW FOR THE KIOTA BASED SDK. NON-PRODUCTION USE ONLY
$graphServiceClient = new GraphServiceClient($requestAdapter);
$requestBody = new ShiftPreferences();
$requestBody->setId('SHPR_eeab4fb1-20e5-48ca-ad9b-98119d94bee7');
$availabilityShiftAvailability1 = new ShiftAvailability();
$availabilityShiftAvailability1Recurrence = new PatternedRecurrence();
$availabilityShiftAvailability1RecurrencePattern = new RecurrencePattern();
$availabilityShiftAvailability1RecurrencePattern->setType(new RecurrencePatternType('weekly'));
$availabilityShiftAvailability1RecurrencePattern->setDaysOfWeek([$availabilityShiftAvailability1RecurrencePattern->setDayOfWeek(new DayOfWeek('monday'));
$availabilityShiftAvailability1RecurrencePattern->setDayOfWeek(new DayOfWeek('wednesday'));
$availabilityShiftAvailability1RecurrencePattern->setDayOfWeek(new DayOfWeek('friday'));
]);
$availabilityShiftAvailability1RecurrencePattern->setInterval(1);
$availabilityShiftAvailability1Recurrence->setPattern($availabilityShiftAvailability1RecurrencePattern);
$availabilityShiftAvailability1RecurrenceRange = new RecurrenceRange();
$availabilityShiftAvailability1RecurrenceRange->setType(new RecurrenceRangeType('noend'));
$availabilityShiftAvailability1Recurrence->setRange($availabilityShiftAvailability1RecurrenceRange);
$availabilityShiftAvailability1->setRecurrence($availabilityShiftAvailability1Recurrence);
$availabilityShiftAvailability1->setTimeZone('Pacific Standard Time');
$availabilityShiftAvailability1->setTimeSlots(null);
$availabilityArray []= $availabilityShiftAvailability1;
$requestBody->setAvailability($availabilityArray);
$additionalData = [
'@odata.etag' => '1a371e53-f0a6-4327-a1ee-e3c56e4b38aa',
];
$requestBody->setAdditionalData($additionalData);
$result = $graphServiceClient->users()->byUserId('user-id')->settings()->shiftPreferences()->patch($requestBody);