SharePoint のユーザー プロファイルの操作
SharePoint のユーザー プロファイルを操作するための一般的なプログラミング タスクについて説明します。
SharePoint のユーザー プロファイル操作用の API
ユーザー プロファイルとユーザー プロファイル プロパティは、SharePoint のユーザーに関する情報を提供します。 SharePoint は次のような API を提供し、ユーザー プロファイルを操作するプログラミングに使用することができます。
マネージ コード用のクライアント オブジェクト モデル
.NET クライアント オブジェクト モデル
Silverlight クライアント オブジェクト モデル
モバイル クライアント オブジェクト モデル
JavaScript オブジェクト モデル
REST (Representational State Transfer) サービス
サーバー オブジェクト モデル
SharePoint開発のベスト プラクティスとして、可能な限りクライアント API を使用してください。 クライアント API には .NET クライアント オブジェクト モデル、JavaScript オブジェクト モデル、REST サービスが含まれています。 SharePoint の API と使用するタイミングの詳細については、「 SharePoint で適切な API セットを選択する」を参照してください。
注:
クライアント API から Microsoft.Office.Server.UserProfiles アセンブリのすべての機能が使用できるわけではありません。 たとえば、クライアント API からは読み取り専用になるため (ユーザーのプロファイル画像を除く)、サーバー オブジェクト モデルを使用して、ユーザー プロファイルの作成または変更を行う必要があります。 また、クライアント側から、Microsoft.Office.Server.Audience、Microsoft.Office.Server.ReputationModel、Microsoft.Office.Server.SocialData などの名前空間にアクセスすることはできません。 クライアント API のサポートされている機能を確認するには、Microsoft.SharePoint.Client.Social および Microsoft.SharePoint.Client.UserProfiles を参照してください。
API には基幹となるプロファイル関連タスクの実行に使用するマネージャー オブジェクトが含まれます。 表 1 に、各 API に含まれているマネージャー オブジェクトおよびその他の主要オブジェクト (または REST リソース) と API のクラス ライブラリ (またはアクセス ポイント) を示します。
注:
Silverlight およびモバイル クライアント オブジェクト モデルは、.NET クライアント オブジェクト モデルと中核的な機能が同じであり、同じ署名を使用するので、表 1 や表 2 には示されていません。 Silverlight クライアント オブジェクト モデルは、Microsoft.SharePoint.Client.UserProfiles.Silverlight.dll で定義され、モバイル クライアント オブジェクト モデルは、Microsoft.SharePoint.Client.UserProfiles.Phone.dll で定義されています。
表 1. ユーザー プロファイルをプログラムで操作するために使用される SharePoint API
SharePointのユーザー プロファイルを操作するための一般的なプログラミング タスク
表 2 に、ユーザー プロファイルを操作するための一般的なプログラミング タスクとそのタスクの実行に使用するメンバーを示します。 メンバーは, .NET クライアント オブジェクト モデル (CSOM)、JavaScript オブジェクト モデル (JSOM)、REST サービス、およびサーバー オブジェクト モデル (SSOM) に由来します。
表 2. ユーザー プロファイルを操作するための一般的なプログラミング タスク用 API
タスク | メンバー |
---|---|
現在のユーザーのコンテキストでマネージャー オブジェクトのインスタンスを作成する | CSOM: PeopleManager JSOM: PeopleManager REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager SSOM: UserProfileManager (オーバーロード) または PeopleManager |
現在のユーザーのプロファイル画像を変更する | CSOM: SetMyProfilePicture JSOM: setMyProfilePicture REST: POST http://<siteUri>/_api/SP.UserProfiles.PeopleManager/SetMyProfilePicture および要求本文で picture パラメーターを渡すSSOM: UserProfile [PropertyConstants.PictureUrl]。Value または SetMyProfilePicture |
現在のユーザーのプロパティを取得する | CSOM: GetMyProperties JSOM: getMyProperties REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetMyProperties (または /_api/social.feed/my または /_api/social.following/my からいくつかの基本的なユーザー プロパティを取得する)SSOM: GetUserProfile |
特定のユーザーのプロパティを取得する | CSOM: GetPropertiesFor JSOM: getPropertiesFor REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetPropertiesFor(accountName=@v)?@v='domain\\user' SSOM: GetUserProfile (オーバーロード) または GetPropertiesFor |
特定ユーザーのユーザー プロファイル プロパティを取得する | CSOM: GetUserProfilePropertiesFor JSOM: getUserProfilePropertiesFor REST: 実装されていません。 GetPropertiesFor を呼び出し、返された PersonProperties オブジェクトの UserProfileProperties プロパティからユーザー プロファイルのプロパティを取得します。 SSOM: GetEnumerator |
ユーザーの特定のユーザー プロファイル プロパティを取得する | CSOM: GetUserProfilePropertyFor JSOM: getUserProfilePropertyFor REST: GET http://<siteUri>/_api/SP.UserProfiles.PeopleManager/GetUserProfilePropertyFor(accountName=@v,propertyName='PreferredName')?@v='domain\\user' SSOM: UserProfile (オーバーロード) し、インデクサーでプロパティ名を指定します |
ユーザー プロファイルを取得する | CSOM: GetUserProfile (現在の ユーザーのクライアント側ユーザー プロファイル のみを返します) JSOM: getUserProfile (現在のユーザーのみのクライアント側のユーザー プロファイルを返します) REST: POST http://<siteUri>/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/GetUserProfile (現在のユーザーのみの クライアント側のユーザー プロファイル を返します)SSOM: GetUserProfile (オーバーロード) |
ユーザー アカウントが存在するかどうかを確認する | CSOM: 実装されていません JSOM: 実装されていません REST: 実装されていません SSOM: UserExists |
ユーザー プロファイルおよびユーザー プロファイルのプロパティと属性を作成または変更する (クライアント API によりプロファイル画像を変更可能。この表の「現在のユーザーのプロファイル画像を変更する」タスクを参照) |
CSOM: 実装されていません JSOM: 実装されていません REST: 実装されていません SSOM: 複数???「方法: SharePoint でサーバー オブジェクト モデルを使用してユーザー プロファイルと組織プロファイルを操作する」を参照してください |
ユーザー プロファイルを削除する | CSOM: 実装されていません JSOM: 実装されていません REST: 実装されていません SSOM: RemoveProfile または RemoveUserProfile (オーバーロード) |
ユーザーの個人サイトをプロビジョニングする | CSOM: CreatePersonalSiteEnque (オーバーロード) JSOM: createPersonalSiteEnque (オーバーロード) REST: POST http://<siteUri>/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/GetUserProfile/CreatePersonalSiteEnqueue SSOM: CreatePersonalSite() (オーバーロード) |
1 人以上のユーザーの個人サイトをプロビジョニングする SharePoint Online の 個人用サイト ホスト管理者のみ利用可能 |
CSOM: CreatePersonalSiteEnqueueBulk JSOM: createPersonalSiteEnqueueBulk REST: POST https://<domain>-admin.sharepoint.com/_api/SP.UserProfiles.ProfileLoader.GetProfileLoader/CreatePersonalSiteEnqueueBulk および emailIDs パラメーターのメールアドレスの文字列配列 (最大 200 文字) を要求の本文で渡します (例: {'emailIDs':['usera@contoso.onmicrosoft.com','userb@contoso.onmicrosoft.com']} )。 SSOM: CreatePersonalSiteEnqueueBulk |
SharePointのユーザーおよびユーザー プロパティ向けの新しいオブジェクト
SharePoint には、ユーザーおよびユーザー プロパティを表す次の新しいオブジェクトが含まれています。
SocialActor オブジェクトと SocialActorInfo オブジェクトは、フィードと次のアクティビティのユーザー (およびドキュメント、サイト、タスク) を表します。
現在のユーザーの個人用サイトを作成するために使用できるメソッドを提供する新しいクライアント側 UserProfile オブジェクト。 ただし、サーバー側の UserProfile オブジェクトに含まれるすべての ユーザー プロパティ が含まれているわけではありません。
PersonProperties オブジェクトには一般的なユーザー プロパティが含まれており、その UserProfileProperties プロパティにはユーザー プロファイル プロパティが含まれています。 PersonProperties はクライアント側コードからユーザー プロパティにアクセスするためのプライマリ API です。
注:
サーバー オブジェクト モデルのバージョンは、 SPSocialActor オブジェクトと PersonProperties オブジェクトです。