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

この記事では、 開いている拡張機能を使用する方法について説明します。

デスクトップやモバイルなどの複数のクライアント プラットフォームで使用できるアプリケーションを構築しているとします。 アプリにサインインするときのデバイスに関係なく一貫性を確保できるように、ユーザー自身で UI エクスペリエンスを構成できるようにしたいと考えています。

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

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

注:

ユーザーとは別に、オープン拡張機能もサポートされ、 他のリソースの種類で管理できます。

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

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

{
    "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"
        }
    ]
}

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

ユーザーは、移動プロファイル情報を変更できます。 アプリは、次のクエリを実行して Microsoft Graph を呼び出します。

要求

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.ユーザーのローミング プロファイルを削除する

ユーザーはローミング プロファイルを不要にすることを決定するため、ユーザーはプロファイルを削除し、アプリは次の要求を実行して Microsoft Graph を呼び出します。

要求

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

応答

HTTP/1.1 204 No content

関連項目