オープン拡張機能を使用してカスタム データをユーザーに追加する

この記事は、オープン拡張機能 の使用方法について、具体例を使って説明します。

デスクトップやモバイルなど、多種のクライアント プラットフォームで利用できるアプリケーションをビルドしているとします。アプリにサインインするときのデバイスに関係なく一貫性を確保できるように、ユーザー自身で UI エクスペリエンスを構成できるようにしたいと考えています。これは、ほとんどのアプリで一般的な要件です。

このシナリオに対して、この記事では次の方法を示します。

  1. ユーザーに関する何らかのローミング プロファイル情報を表すオープン拡張機能を追加します。
  2. ユーザーに対してクエリを実行し、ローミング プロファイルを返します。
  3. ユーザーのローミング プロファイル情報 (オープン拡張機能値) を変更します。
  4. ユーザーのローミング プロファイル情報を削除します。

注意

このトピックでは、user リソースにおいてオープン拡張機能を追加、読み取り、更新、削除する方法を示します。 オープン拡張機能もサポートされており、 他のリソースの種類に対して管理できます。

1.ローミング プロファイル情報を追加する

ユーザーがアプリにサインインし、アプリの外観を構成します。これらのアプリ設定はローミングされ、アプリにサインインするためにユーザーが使用するデバイスに関わらず同じエクスペリエンスになるようにする必要があります。ここでは、ユーザーのリソースにローミング プロファイル情報を追加する方法を示します。

要求

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.type": "#microsoft.graph.openTypeExtension",
    "extensionName": "com.contoso.roamingSettings",
    "id": "com.contoso.roamingSettings",
    "theme": "dark",
    "color": "purple",
    "lang": "Japanese"
}

2.ローミング プロファイル情報を取得する

ユーザーが別のデバイスからアプリにサインインするときに、アプリはユーザーのプロファイル詳細とローミング設定を取得できます。これは、ユーザーのリソースを取得し、拡張ナビゲーション プロパティを展開することによって行えます。

要求

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

応答

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

{
    "id": "84b80893-8749-40a3-97b7-68513b600544",
    "displayName": "John Smith",
    "mail": "john@contoso.com",
    "mobilePhone": "1-555-6589",
    "extensions": [
        {
            "@odata.type": "#microsoft.graph.openTypeExtension",
            "extensionName": "com.contoso.roamingSettings",
            "id": "com.contoso.roamingSettings",
            "theme": "dark",
            "color": "purple",
            "lang": "Japanese"
        }
    ]
}

注意

複数の拡張機能がある場合、対象の拡張機能を取得するために id でフィルター処理できます。

3.ローミング プロファイル情報を変更する

ユーザーは、ローミング プロファイル情報を変更することができます。オープン拡張機能の値で PATCH を使用して更新できます。

要求

PATCH https://graph.microsoft.com/v1.0/me/extensions/com.contoso.roamingSettings
Content-type: application/json
{
    "theme":"light",
    "color":"yellow",
    "lang":"Swahili"
}

応答

HTTP/1.1 204 No content

4.ユーザーのローミング プロファイルを削除する

ローミング プロファイルがもはや不要であるとユーザーが判断する場合、削除できます。オープン拡張機能の値で DELETE 要求を使用して行えます。

要求

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

応答

HTTP/1.1 204 No content

関連項目