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


Добавление пользовательских данных в ресурсы 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":"purple",
    "lang":"Swahili"
}

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

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

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