使用开放扩展向用户添加自定义数据

本教程介绍如何使用 开放扩展

假设你正在构建一个可在多个客户端平台(如桌面和移动设备)上使用的应用程序。 你希望让用户配置其 UI 体验,以便无论用户使用哪个设备登录到你的应用,它都是一致的。

对于此方案,本文介绍如何:

  • 表示有关使用开放扩展的用户的一些漫游配置文件信息。
  • 查询用户并返回漫游配置文件。
  • 更改存储在打开的扩展中的用户的漫游配置文件信息。
  • 删除用户的漫游配置文件信息。

注意

除用户外,还支持开放扩展,并且可以针对 其他资源类型进行管理。

先决条件

若要重现本文中的步骤,需要具有以下权限:

  • 登录到 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