Поделиться через


Добавление пользовательских данных в ресурсы user с помощью открытых расширений

В этом руководстве описано, как использовать открытые расширения.

Представьте, что вы создаете приложение, доступное на нескольких клиентских платформах, таких как настольные и мобильные. Вы хотите разрешить пользователям настраивать интерфейс пользовательского интерфейса таким образом, чтобы он был согласованным независимо от того, какое устройство они используют для входа в приложение.

Для этого сценария в этой статье показано, как:

  • Представление некоторых перемещаемых сведений профиля о пользователе с помощью открытых расширений.
  • запросить данные у пользователя и вернуть перемещаемый профиль;
  • Измените перемещаемые данные профиля пользователя, хранящиеся в открытом расширении.
  • удалить данные перемещаемого профиля пользователя.

Примечание.

Помимо пользователей, поддерживаются и открытые расширения, которыми можно управлять для других типов ресурсов.

Предварительные требования

Чтобы воспроизвести действия, описанные в этой статье, вам потребуются следующие привилегии:

  • Войдите в клиент API, например Graph Обозреватель и пользователя, для которого вы хотите сохранить перемещаемый профиль.
  • Предоставьте приложению делегированное разрешение User.ReadWrite для вошедшего пользователя.

Этап 1. Добавление сведений о перемещаемом профиле

Пользователь входит в приложение и настраивает его внешний вид. Эти параметры приложения должны перемещаться, чтобы интерфейс выглядел одинаково на любом устройстве. Приложение вызывает Microsoft Graph, выполнив следующий запрос, чтобы добавить данные перемещаемого профиля в объект ресурса пользователя, выполнившего вход.

Запрос

POST https://graph.microsoft.com/v1.0/me/extensions
Content-type: application/json

{
    "@odata.type":"microsoft.graph.openTypeExtension",
    "extensionName":"com.contoso.roamingSettings",
    "theme":"dark",
    "color":"purple",
    "lang":"Japanese"
}

Отклик

HTTP/1.1 201 Created
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('376bdbfc-e41f-4082-a8cf-b31731465eeb')/extensions/$entity",
    "@odata.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.roamingSettings",
    "theme": "dark",
    "color": "purple",
    "lang": "Japanese",
    "id": "com.contoso.roamingSettings"
}

Этап 2. Получение сведений о перемещаемом профиле

Когда пользователь входит в приложение с другого устройства, приложение вызывает Microsoft Graph, чтобы получить сведения о профиле пользователя и развернуть свойство навигации расширений , чтобы получить параметры перемещения, а затем использует эти данные для обеспечения того же взаимодействия, что и на другом устройстве.

Запрос

GET https://graph.microsoft.com/v1.0/me?$select=id,displayName,mail,mobilePhone&$expand=extensions

Отклик

HTTP/1.1 200 OK
Content-Type: application/json

{
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users(id,displayName,mail,mobilePhone,extensions())/$entity",
    "@microsoft.graph.tips": "Use $select to choose only the properties your app needs, as this can lead to performance improvements. For example: GET me?$select=signInActivity,accountEnabled",
    "id": "376bdbfc-e41f-4082-a8cf-b31731465eeb",
    "displayName": "Raul Razo",
    "mail": null,
    "mobilePhone": null,
    "extensions@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('376bdbfc-e41f-4082-a8cf-b31731465eeb')/extensions",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "extensionName": "com.contoso.roamingSettings",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese",
            "id": "com.contoso.roamingSettings"
        }
    ]
}

Этап 3. Изменение сведений о перемещаемом профиле

Пользователь может изменить сведения о перемещаемом профиле. Приложение вызывает Microsoft Graph, выполнив следующий запрос. Запрос возвращает код отклика 204 No Content.

Необходимо также включить все свойства в текст запроса, даже если требуется обновить только их подмножество. В противном случае Microsoft Graph удаляет свойства, которые вы не передаете. Чтобы удалить данные, но сохранить свойство, задайте для свойства значение null.

PATCH https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
Content-type: application/json

{
    "theme":"light",
    "color":"yellow",
    "lang":"Swahili"
}

Этап 4. Удаление перемещаемого профиля пользователя

Пользователь решает, что он больше не хочет использовать перемещаемый профиль. Чтобы удалить свойство расширения, приложение вызывает Microsoft Graph, выполнив следующий запрос. Запрос возвращает код отклика 204 No Content.

DELETE https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings