ソーシャル評価を作成および取得する
最終更新日: 2010年3月9日
適用対象: SharePoint Server 2010
この記事の内容
ソーシャル評価の作成
ソーシャル評価の取得
リストでのソーシャル評価の有効化
SocialRatingManager オブジェクトを使用すると、指定した任意の URL に対するソーシャル評価を作成できます。Microsoft SharePoint Server のリストおよびドキュメント ライブラリのエントリは URL で表すことができるので、これらのアイテムおよび他の任意の SharePoint Server ページに対するソーシャル評価を作成および取得できます。ここでは、SocialRatingManager を使用してソーシャル評価を作成および取得する方法、およびカスタム アプリケーションの SharePoint Server でソーシャル評価を有効にする方法について説明します。このトピックのサンプルでは、次の参照を Microsoft Visual Studio 2010 プロジェクトに追加してあるものとします。
Microsoft.SharePoint
Microsoft.Office.Server
Microsoft.Office.Server.UserProfiles
System.Web
ソーシャル評価の作成
オーバーロードされた SetRating メソッドは、指定された単一の URL で現在のユーザーに対する単一の SocialRating オブジェクトを作成します。ソーシャル評価は、URL と、0 ~ 5 の範囲の整数で構成されます。必要に応じて、評価の文字列タイトルと、分析データとしてログに記録される名前/値ペアで構成される FeedbackData オブジェクトで構成することもできます。以下のサンプルでは、SocialRatingManager を使用して、指定した URL に 1 つのソーシャル評価を作成する方法を示します。
Uri myUri = new Uri("URL");
FeedbackData myFeedbackData = new FeedbackData();
myFeedbackData.UserTitle = "employee";
using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
mySocialRatingManager.SetRating(myUri, 5, myFeedbackData);
}
ソーシャル評価の取得
オーバーロードされた GetRating メソッドは、指定された 1 つの URL に対する 1 つの SocialRating オブジェクトを取得します。UserProfile を指定しないと、メソッドは指定された URL に現在のユーザーが追加したソーシャル評価を返します (ある場合)。次のサンプルでは、SocialRatingManager を使用して指定したユーザーの 1 つの評価を取得する方法を示します。
using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating aRating = mySocialRatingManager.GetRating(myUri);
Console.WriteLine(aRating.Url + ": " + aRating.Rating);
}
オーバーロードされた GetRatings メソッドは、指定された URL またはユーザーに対するすべての SocialRating オブジェクトを取得します。URL を指定すると、メソッドは現在の SPServerContext でその URL に追加されたすべてのソーシャル評価を返します。ユーザーを指定すると、メソッドは指定したユーザーが追加したすべてのソーシャル評価を返します。
using (SPSite site = new SPSite("SharePoint site URL"))
{
SPServiceContext context = SPServiceContext.GetContext(site);
UserProfileManager myUserProfileManager = new UserProfileManager(context);
UserProfile myUserProfile = myUserProfileManager.GetUserProfile(false);
SocialRatingManager mySocialRatingManager = new SocialRatingManager(context);
SocialRating[] ratings = mySocialRatingManager.GetRatings(myUserProfile);
Console.WriteLine("Ratings for user:");
foreach (SocialRating rating in ratings)
{
Console.WriteLine(rating.Url + ": " + rating.Rating);
}
}
リストでのソーシャル評価の有効化
リストおよびドキュメント ライブラリを設定するためのユーザー インターフェイスを使用して、リストおよびドキュメント ライブラリの平均評価フィールドおよび評価カウント フィールドを有効にできます。どちらのフィールドもサイト列として使用でき、リストまたはライブラリの設定でアイテムの評価を有効にすることで、任意のリストまたはドキュメント ライブラリに追加できます。次のサンプルでは、カスタム アプリケーションのコードを使用して、任意のリストでこれらのフィールドを有効にする方法を示します。
public void AddRatingsFields(SPList list)
{
//Add the average rating field.
SPField averageRatingField = list.ParentWeb.AvailableFields[new Guid("5a14d1ab-1513-48c7-97b3-657a5ba6c742")];
list.Fields.AddFieldAsXml(averageRatingField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);
//Add the rating count field.
SPField ratingCountField = list.ParentWeb.AvailableFields[new Guid("b1996002-9167-45e5-a4df-b2c41c6723c7")];
list.Fields.AddFieldAsXml(ratingCountField.SchemaXml, true, SPAddFieldOptions.AddToAllContentTypes | SPAddFieldOptions.AddFieldToDefaultView);
}
関連項目
参照
Microsoft.Office.Server.SocialData