Share via


開発者向けの SharePoint のソーシャルおよびコラボレーション機能の新機能

SharePointの個人用サイトおよびコミュニティ サイト開発シナリオ向けのソーシャル機能とコラボレーション機能に関して、新機能と更新された機能を確認します。 SharePoint のソーシャル機能とコラボレーション機能を使用すると、コミュニケーションや最新情報の把握を簡単に行えます。 個人用サイトおよびチーム サイトの向上したソーシャル フィードでは、気になるユーザーやコンテンツに関して最新情報を常に把握できます。 新しいコミュニティ サイト機能では、充実したコミュニティ体験を実感でき、情報を簡単に見つけ出して共有したり、同じ関心を持つユーザーを見つけることができます。

SharePoint の新しいソーシャル機能とコラボレーション機能の詳細な概要については、「TechNet 上の SharePoint のソーシャル コンピューティングの新機能 」を参照してください。 ソーシャル機能とコラボレーション機能のプログラミングの詳細については、「 SharePoint のソーシャルおよびコラボレーション機能」を参照してください。

SharePoint の個人用サイトの新機能と更新された機能

ユーザー プロファイルとソーシャル データを含む個人用サイト ソーシャル API には、さまざまな新機能と更新された機能があります。 個人用サイトおよびチーム サイトの新機能によってフィード内での双方向の対話式の操作が実現し、ユーザーは関心のある人々やコンテンツの最新情報を簡単に把握できます。

SharePoint の [ニュースフィード] ページには、ミニブログの投稿を簡単に公開できるテキストボックスや、フォローしているユーザーとコンテンツからの投稿と更新を配信する双方向対話式フィードなど、強化された機能の一部が表示されます。

新しい Social 名前空間は、ソーシャル フィードとユーザーやコンテンツをフォローするための API を提供します。

Social 名前空間には、フィードとミニブログの投稿を操作したり、ユーザーやコンテンツをフォローするためのプライマリ API が含まれています。 .NET クライアント オブジェクト モデルの詳細については「 Microsoft.SharePoint.Client.Social 」を、JavaScript オブジェクト モデルの詳細については「 SP.Social」を、サーバー オブジェクト モデルの詳細については「 Microsoft.Office.Server.Social 」を、それぞれ参照してください。

注:

Microsoft.Office.Server.ActivityFeed 名前空間の API は非推奨になりました。 「使用されなくなった (削除された) 個人用サイト ソーシャル API および機能」を参照してください。

SharePoint の、ソーシャル フィード、フォローしているユーザーとコンテンツ、ユーザー プロパティ用の新しいクライアント API

SharePointには、ソーシャル フィードの操作、ユーザーおよびコンテンツのフォロー、オンライン、社内、モバイル開発でのユーザー プロパティの取得に使用できる新しいクライアント API が含まれています。 可能な場合は、サーバー オブジェクト モデルまたは Web サービスの代わりに SharePoint開発用クライアント API を使用することをお勧めします。 クライアント API には、マネージ クライアント オブジェクト モデル、JavaScript オブジェクト モデル、Representational State Transfer (REST) サービスが含まれます。 SharePoint アドインを開発する場合は、クライアント API を使用する必要があります。

Microsoft.Office.Server.UserProfiles アセンブリのサーバー側機能の中には、クライアント API からは使用できないものがあります。 たとえば、Microsoft.Office.Server.Audience 名前空間、Microsoft.Office.Server.ReputationModel 名前空間、または Microsoft.Office.Server.SocialData 名前空間の API へのクライアント側アクセスはありません。 使用できる API については、 Microsoft.SharePoint.Client.Social 名前空間および Microsoft.SharePoint.Client.UserProfiles 名前空間を参照してください。

個人用サイトソーシャル クライアント API にアクセスする方法については、「 SharePoint でのソーシャル機能の開発の開始」を参照してください。 SharePoint の API セットと使用するタイミングの詳細については、「 SharePoint で適切な API セットを選択する」を参照してください。

複数ユーザー (SharePoint Online 上の 個人用サイト ホスト管理者のみ) 向けの個人サイトおよび OneDrive for Business をプロビジョニングするには、ProfileLoader.CreatePersonalSiteEnqueueBulk メソッドを使用します。

個人用サイト ホスト管理者は ProfileLoader.CreatePersonalSiteEnqueueBulk メソッドを使用して、プログラムによって複数ユーザー向けの個人サイトを SharePoint Online 上にプロビジョニングできます。これには OneDrive for Business や [サイトの管理] ページなどの機能が含まれています。

次のコード例では、コンソール アプリケーションに .NET クライアント オブジェクト モデルを使用しています。 この例を実行する前に、Microsoft.SharePoint.Client.dll、Microsoft.SharePoint.Client.Runtime.dll および Microsoft.SharePoint.Client.UserProfiles.dll への参照を追加し、 userNamepasswordStr、および serverUrl 変数のプレース ホルダー値を変更してください。 serverUrl 変数は、SharePoint Online 管理センターのURL でなければなりません。

注:

必要なクライアント DLL を取得するには、 SharePoint Online クライアント コンポーネント SDK をダウンロードします。


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Security;
using Microsoft.SharePoint.Client;
using Microsoft.SharePoint.Client.UserProfiles;

namespace CreatePersonalSiteBulkConsole
{
    class Program
    {
        static void Main(string[] args)
        {
            string userName = "administrator@contoso.onmicrosoft.com";
            string passwordStr = "password";
            string serverUrl = "https://contoso-admin.sharepoint.com/";

            using (var clientContext = new ClientContext(serverUrl))
            {
                SecureString password = new SecureString();
                Array.ForEach(passwordStr.ToCharArray(), c => password.AppendChar(c));

                var credentials = new SharePointOnlineCredentials(userName, password);

                clientContext.Credentials = credentials;

                var web = clientContext.Web;
                clientContext.Load(web);
                clientContext.ExecuteQuery();
                ProfileLoader loader = ProfileLoader.GetProfileLoader(clientContext);

                if (loader == null)
                {
                    throw new InvalidOperationException("Failed to get ProfileLoader");
                }

                string[] userEmails = { "usera@contoso.onmicrosoft.com", "userb@contoso.onmicrosoft.com" };
                loader.CreatePersonalSiteEnqueueBulk(userEmails);
                loader.Context.ExecuteQuery();
            }
        }
    }
}

CreatePersonalSiteEnqueueBulk メソッドを Windows PowerShell で使用するには、次のコマンドのプレースホルダー値 (SharePoint Online 管理センター の URL とユーザー名) を変更してから、コマンドを SharePoint 管理シェル で実行します。


$webUrl = "https://yoursharepointadmin.sharepoint.com"
$ctx = New-Object Microsoft.SharePoint.Client.ClientContext($webUrl)

$web = $ctx.Web
$username = "admin@myadmin.sharepoint.com"
$password = read-host -AsSecureString

$ctx.Credentials = New-Object Microsoft.SharePoint.Client.SharePointOnlineCredentials($username,$password)

$ctx.Load($web)
$ctx.ExecuteQuery()

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SharePoint.Client.UserProfiles")

$loader =[Microsoft.SharePoint.Client.UserProfiles.ProfileLoader]::GetProfileLoader($ctx)

#To get profile
$profile = $loader.GetUserProfile()
$ctx.Load($profile)
$ctx.ExecuteQuery()
$profile 
#To enqueue profile
$loader.CreatePersonalSiteEnqueueBulk(@("user1@domain.com")) 
$loader.Context.ExecuteQuery()

詳細については、「Windows PowerShellを使用して SharePoint を管理する」を参照してください。

SharePointのユーザーおよびユーザー プロパティ向けの新しいオブジェクト

SharePoint には次の、ユーザーおよびユーザー プロパティを表す新しいオブジェクトが含まれます。

  • SocialActor オブジェクトは、フィードと次のアクティビティのユーザー (およびその他のエンティティ) を表します。

  • PersonProperties オブジェクトには、一般的なユーザー プロパティとユーザー プロファイル プロパティが含まれています。

注:

サーバー オブジェクト モデルのバージョンは、 SPSocialActor オブジェクトと PersonProperties オブジェクトです。

SharePoint には、現在のユーザーの個人用サイトを作成するために使用できるメソッドを提供する新しいクライアント側 UserProfile オブジェクトも含まれています。 ただし、サーバー側の UserProfile オブジェクトに含まれるすべての ユーザー プロパティ が含まれているわけではありません。 クライアント側のコードからすべてのユーザー プロパティにアクセスするには、PeopleManager.GetMyProperties メソッドまたは PeopleManager.GetPropertiesFor メソッド (ユーザー プロファイル プロパティは PersonProperties.UserProfileProperties プロパティに格納されています) を使用するか、PeopleManager.GetUserProfilePropertiesFor メソッドまたは PeopleManager.GetUserProfilePropertyFor メソッドを使用します。

新しいクライアント側のユーザー選択コントロール

クライアント側ユーザー選択ウィンドウ コントロールは、ユーザー、グループ、およびクレームを選択するためのクロス ブラウザー サポートを提供する HTML および JavaScript コントロールです。 コントロール固有のプロパティ (複数のユーザーまたはユーザーとグループを許可するなど) や Web アプリケーション レベルの構成設定 (Active Directory ドメイン サービスのパラメーターや、特定のフォレストの対象化など) を含めて、この選択ウィンドウ コントロールはサーバー側バージョンのコントロールと同じ設定を使用して構成できます。 詳細については、「SharePoint ホスト型 SharePoint アドインでクライアント側Peopleピッカー コントロールを使用する」を参照してください。

使用されなくなった (削除された) 個人用サイト ソーシャル API および機能

次の個人用サイト ソーシャル API および機能は SharePoint で使用できなくなりました。

  • Microsoft.Office.Server.ActivityFeed 名前空間の API は非推奨になりました。 Social 名前空間は、SharePoint でソーシャル フィードをプログラムで操作するための API を提供します。 下位互換性のために、SharePoint 2010 の ActivityEvent 項目は、応答できないイベントとして SharePoint フィードに表示されます。 (サーバーの全体管理でレガシ イベントの移行を有効にする必要があります)。

  • 個人用サイト RSS フィード (ActivityFeed.aspx) は、REST サービス、クライアント オブジェクト モデル、および JavaScript オブジェクト モデルの新しい API に変更されました。 この API (クライアント API が望ましい) を使用するカスタムの SharePoint 2010 コードを移行するには、ActivityFeed.aspx に対するすべての要求を、新しい API に対する呼び出しに変更し、JavaScript Object Notation (JSON) 形式で返されるフィード データを処理します。

  • 最近のアクティビティ Web パーツは、マルチスレッド対話と動的フィード取得をサポートする新しいニュースフィード Web パーツに置き換えられました。

    注:

    ニュースフィード Web パーツや他のフィード Web パーツ (チーム サイトのサイト フィード Web パーツなど) のカスタマイズはサポートしていません。 JavaScript オーバーライドなどを使用してこれらの Web パーツをカスタマイズする場合は、カスタマイズによって SharePoint の更新が中断される可能性があることにご注意ください。

  • ソーシャル コメント Web パーツは、使用されなくなりました。

  • 次のアクティビティ イベントは、フィードを自動的に通知しなくなりました (プロファイルの更新、近づいている誕生日および職場の記念日、新しいメンバーシップ、マネージャーの変更)。 ただし、これらのアクティビティに対するカスタム イベント レシーバーを作成できます。 新しく追加されたソーシャル イベントはありません。

  • [プライバシー] 列挙の次のフィールドは非推奨です。連絡先組織マネージャーです。 SharePoint では、 プライベート ( 自分のみ) と パブリック ( すべてのユーザー) のプライバシー設定のみが提供されます。 既存のプライバシー設定は、ユーザーが変更するまで保持されます。 この API を使用するカスタム SharePoint 2010 コードを移行するには、非推奨のプライバシー フィールドへのすべての参照を置き換えます。

  • SocialFollowingManager からアクセスされる Following People API は、SharePoint Server 2010 の 仕事仲間機能に代わるものです。 [ 仕事仲間] ページは [ フォロー相手] ページに変更されました。 ユーザーが仲間をグループに分類できる グループ機能は提供されなくなりました。

  • SharePointでは組織プロファイルが廃止され、次の種類が使用できなくなりました。 OrganizationProfileOrganizationProfileManagerOrganizationMembershipTypeOrganizationNotFoundExceptionOrganizationProfileChangeOrganizationProfileChangeQueryOrganizationProfileMembershipChange、および OrganizationProfileValueCollection

  • SharePointでは、 個人用リンク機能は使用できなくなりました。

SharePointの新しいコミュニティ サイト機能

新しいコミュニティ サイト機能として、新しいサイト テンプレートと強化されたディスカッション機能があります。 コミュニティ メンバーは、評価、カテゴリ、注目のディスカッション、質問投稿タイプ、最適な返信などの機能を使用して、人気のあるディスカッションや関連情報、同じ関心を持つユーザーを簡単に見つけることができます。 メンバーはコミュニティに参加する際に評価を作成します。

コミュニティ サイト機能では開発用の特定の API を公開しません。 コミュニティ サイト機能を拡張するには、SharePoint サイトおよびリスト API を直接使用します。 たとえば、SharePoint API を使用してサイトおよびリスト テンプレートをカスタマイズする、ソーシャル フィード用にコミュニティからのカスタム アクティビティを作成する、評価情報を検索結果に統合する、評価モデルをカスタマイズする、ディスカッションを主宰するワークフローを作成することができます。

次のリストには、コミュニティ サイト機能を使用した開発に関する情報が含まれています。

  • コミュニティ サイトは Community サイト テンプレート ( Id = 62) を使用します。 このサイト テンプレートはパブリック Web サイトに使用できません。 ディスカッション ボード リストのテンプレートの種類は DiscussionBoard (値 = 108) です

  • [ コミュニティ サイト] 機能をアクティブ化すると、 CommunityEventReceiver イベント レシーバーがアクティブにされます。

  • クライアント側に表示されるリスト ビューをカスタマイズするには、JavaScript オーバーライドを使用してビューを変更します。 リスト ビューは SharePoint API を使用して拡張できません。 詳細については、「 クライアント側レンダリングを使用して SharePoint アドインのリスト ビューをカスタマイズする」を参照してください。

  • コミュニティ サイトでは非同期イベントを使用してオブジェクトを更新します。 バックグラウンドで非同期イベントが実行されているときにリストおよびリストアイテムの更新を試みると、保存の競合が発生し、オブジェクト処理が無効になる場合があります。

    回避方法として、次のコード例に示すように、 Update 呼び出しによって返される例外を処理し、呼び出しを再試行する前にインスタンスを更新して、複数回の再試行用にループ処理を作成します。

  
int retries = 1;
while (retries <= 10)
{
    try
    {
        spListItem.IconOverlay = urlString;
        spListItem.Update();
        break;
    }
    catch (SPException saveConflict)
    {
        spListItem = web.Lists.GetItemById(spListItem.ID);
        retries++;
        if (retries > 10) throw;
        System.Threading.Thread.Sleep(1000);
    }
}

関連項目