SharePoint でメンション、タグ、サイトおよびドキュメントへのリンクを投稿に含めるInclude mentions, tags, and links to sites and documents in posts in SharePoint

SocialDataItem オブジェクトをミニブログの投稿に追加する方法を説明します。これらは SharePoint ソーシャル フィードのメンション、タグ、またはリンクとしてレンダリングされます。Learn how to add SocialDataItem objects to microblog posts, which render as mentions, tags, or links in SharePoint social feeds. ソーシャル フィードでは、最も簡単な形式の投稿コンテンツにはテキストのみが含まれますが、メンション、タグ、または Web サイト、SharePoint サイト、およびドキュメントへのリンクとしてレンダリングされるリンクを追加することもできます。In a social feed, the simplest form of post content contains only text, but you can also add links that render as mentions, tags, or links to websites, SharePoint sites, and documents. これを行うには、SocialDataItem オブジェクトを、投稿を定義する SocialPostCreationData オブジェクトの ContentItems プロパティに追加します。To do this, you add SocialDataItem objects to the ContentItems property of the SocialPostCreationData object that defines the post. 投稿には複数のリンクを含めることができます。Posts can contain multiple links.

注意

埋め込みの画像、ビデオ、またはドキュメントを投稿のコンテンツに追加するには、SocialAttachment オブジェクトを SocialPostCreationData.Attachment プロパティに追加します。To add embedded pictures, videos, or documents to a post's content, you add a SocialAttachment object to the SocialPostCreationData.Attachment property. 詳細については、「方法: SharePoint で投稿にイメージ、ビデオ、ドキュメントを埋め込む」を参照してください。For more information, see How to: Embed images, videos, and documents in posts in SharePoint.

この記事で説明する API は, .NET クライアント オブジェクト モデルのものです。ただし、JavaScript オブジェクト モデルなど別の API を使用する場合は、オブジェクト名または対応する API が異なることがあります。関連 API のドキュメントへのリンクは、「 その他の技術情報」を参照してください。The API described in this article is from the .NET client object model. However, if you're using another API, such as the JavaScript object model, the object names or corresponding API might be different. See Additional resources for links to documentation for related APIs.

SharePoint でリンクを投稿に追加するコード例を使用するための前提条件Prerequisites for using the code examples to add links to a post in SharePoint

この記事のコード例は、リンクをミニブログの投稿に追加する方法を示しています。これらの例は、次の SharePoint アセンブリを使用するコンソール アプリケーションのものです。The code examples in this article show how to add links to microblog posts. These examples are from console applications that use the following SharePoint assemblies:

  • Microsoft.SharePoint.ClientMicrosoft.SharePoint.Client

  • Microsoft.SharePoint.Client.RuntimeMicrosoft.SharePoint.Client.Runtime

  • Microsoft.SharePoint.Client.UserProfiliesMicrosoft.SharePoint.Client.UserProfilies

開発環境を設定してコンソール アプリケーションを使用する方法の詳細については、「 [方法] SharePoint で .NET クライアント オブジェクト モデルを使用して投稿の作成と削除、およびソーシャル フィードの取得を行う」を参照してください。For instructions about how to set up your development environment and create a console application, see How to: Create and delete posts and retrieve the social feed by using the .NET client object model in SharePoint.

例: SharePoint で Web サイト、SharePoint サイト、およびドキュメントへのリンクを投稿に含めるExample: Include links to websites, SharePoint sites, and documents in a post in SharePoint

次のコード例では、Web サイト、SharePoint サイト、およびドキュメントへのリンクを含む投稿を公開します。方法は次のとおりです。The following code example publishes a post that contains links to a website, a SharePoint site, and a document. It shows how to:

  • リンクを表す SocialDataItem オブジェクトを作成します。各インスタンスでリンク タイプ用の SocialDataItemType フィールド、リンク用の表示テキスト、およびリンクの URI を設定します。Create SocialDataItem objects that represent the links. Each instance sets the SocialDataItemType field for the link type, the display text for the link, and the link URI.

  • リンクの表示テキストを表示する場所を示すプレースホルダーを投稿テキストに追加します。Add placeholders to the post text to indicate where the link's display text should appear.

  • 投稿の作成に使用した SocialPostCreationData オブジェクトの ContentItems プロパティに、リンク オブジェクトを追加します。Add the link objects to the ContentItems property of the SocialPostCreationData object that's used to create the post.

注意

現在、SharePoint では Web サイト、SharePoint サイト、およびドキュメントへのリンクは同じように扱われますが、ベスト プラクティスとしては、SharePoint サイトおよびドキュメントには Site タイプおよび Document タイプを選択してください。Currently, SharePoint handles links to websites, SharePoint sites, and documents in the same way, but as a best practice, choose the Site type and the Document type for SharePoint sites and documents.

ソーシャル フィードで Web サイト、SharePoint サイト、またはドキュメントへのリンクをクリックすると、アイテムが別のブラウザー ウィンドウで開きます。In the social feed, clicking a link to a website, SharePoint site, or document opens the item in a separate browser window.

注意

コードを実行する前に、URL 変数のプレースホルダー値を変更してください。Change the placeholder values for the URL variables before you run the code.


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

namespace IncludeLinksInPost
{
    class Program
    {
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the actual values.
            const string serverUrl = "http://serverName/siteName/";
            const string websiteLinkUrl = "http://bing.com";
            const string siteLinkUrl = "http://serverName/siteName/";
            const string docLinkUrl = "http://serverName/Shared%20Documents/docName.txt";

            // Define the link to a website that you want to include in the post.
            SocialDataItem websiteLink = new SocialDataItem
            {
                ItemType = SocialDataItemType.Link,
                Text = "link to a website",
                Uri = websiteLinkUrl
            };

            // Define the link to a SharePoint site that you want to include in the post.
            SocialDataItem siteLink = new SocialDataItem
            {
                ItemType = SocialDataItemType.Site,
                Text = "link to a SharePoint site",
                Uri = siteLinkUrl
            };

            // Define the link to a document that you want to include in the post.
            SocialDataItem docLink = new SocialDataItem
            {
                ItemType = SocialDataItemType.Document,
                Text = "link to a document",
                Uri = docLinkUrl
            };

            // Add the links to the post's creation data.
            // Put placeholders ({n}) where you want the links to appear in the post text,
            // and then add the links to the post's content items.
            SocialPostCreationData postCreationData = new SocialPostCreationData();
            postCreationData.ContentText = "Check out this {0}, {1}, and {2}.";
            postCreationData.ContentItems = new SocialDataItem[3] { 
                    websiteLink, 
                    siteLink, 
                    docLink 
                };
            try
            {

                // Get the context and the SocialFeedManager instance.
                ClientContext clientContext = new ClientContext(serverUrl);
                SocialFeedManager feedManager = new SocialFeedManager(clientContext);

                // Publish the post. This is a root post to the user's feed, so specify
                // null for the targetId parameter.
                feedManager.CreatePost(null, postCreationData);
                clientContext.ExecuteQuery();
                Console.Write("The post was published.");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.Write("Error publishing the post: " + ex.Message);
                Console.ReadLine();
            }
        }
    }
}

例: SharePoint の投稿で他のユーザーにメンションを付けるExample: Mention someone in a post in SharePoint

次のコード例では、ユーザーにメンションを付ける投稿を公開します。方法は次のとおりです。The following code example publishes a post that mentions a user. It shows how to:

  • ユーザーへのリンクであるメンションを表す SocialDataItem オブジェクトを作成します。 SocialDataItem で、 SocialDataItemType.User フィールドとメンションを付けるユーザーのアカウント名を指定します。アカウント名は、ユーザーのログインまたは電子メール アドレスを使用して設定できます。Create a SocialDataItem object to represent a mention, which is a link to a user. The SocialDataItem specifies the SocialDataItemType.User field and the mentioned person's account name. You can set the account name by using either the person's login or email address.

  • メンションを付けるユーザーの表示名を表示する場所を示すプレースホルダーを投稿テキストに追加します。Add a placeholder to the post text to indicate where the mentioned person's display name should appear.

  • 投稿の作成に使用される SocialPostCreationData オブジェクトの ContentItems プロパティに SocialDataItem を追加します。Add the SocialDataItem to the ContentItems property of the SocialPostCreationData object that's used to create the post.

ソーシャル フィードでメンションをクリックすると、メンションが付いた個人の [基本データ] ページにリダイレクトされます。In the social feed, clicking a mention redirects to the mentioned person's About page.

注意

コードを実行する前に、変数 serverURLaccountName のプレースホルダーの値を変更してください。Change the placeholder values for the serverURL and accountName variables before you run the code.


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

namespace IncludeMentionInPost
{
    class Program
    {
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the actual values.
            const string serverUrl = "http://serverName/siteName/";
            const string accountName = @"domain\\name or email address";

            // Define the mention link that you want to include in the post.
            SocialDataItem userMentionLink = new SocialDataItem
            {
                ItemType = SocialDataItemType.User,
                AccountName = accountName
            };

            // Add the mention to the post's creation data.
            // Put a placeholder ({0}) where you want the mention to appear in the post text,
            // and then add the mention to the post's content items.
            SocialPostCreationData postCreationData = new SocialPostCreationData();
            postCreationData.ContentText = "{0} does great work!";
            postCreationData.ContentItems = new SocialDataItem[1] { userMentionLink, };

            try
            {

                // Get the context and the SocialFeedManager instance.
                ClientContext clientContext = new ClientContext(serverUrl);
                SocialFeedManager feedManager = new SocialFeedManager(clientContext);

                // Publish the post. This is a root post to the user's feed, so specify
                // null for the targetId parameter.
                feedManager.CreatePost(null, postCreationData);
                clientContext.ExecuteQuery();
                Console.Write("The post was published.");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.Write("Error publishing the post: " + ex.Message);
                Console.ReadLine();
            }
        }
    }
}

例: SharePoint で投稿にタグを含めるExample: Include a tag in a post in SharePoint

次のコード例では、タグを含む投稿を公開します。方法は次のとおりです。The following code example publishes a post that includes a tag. It shows how to:

ソーシャル フィードでタグをクリックすると、タグの [基本データ] ページにリダイレクトされます。タグが存在しない場合は、サーバーによってタグが作成されます。In the social feed, clicking a tag redirects to the tag's About page. If the tag doesn't already exist, the server creates it.

注意

コードを実行する前に、変数 serverURLtagName のプレースホルダーの値を変更してください。Change the placeholder values for the serverURL and tagName variables before you run the code.


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

namespace IncludeTagInPost
{
    class Program
    {
        static void Main(string[] args)
        {

            // Replace the following placeholder values with the actual values.
            const string serverUrl = "http://serverName/siteName/";
            const string tagName = "#" + "tagName";

            // Define the link to a tag that you want to include in the post. If the tag is new, the
            // server adds it to the tags collection.
            SocialDataItem tagLink = new SocialDataItem
            {
                ItemType = SocialDataItemType.Tag,
                Text = tagName
            };

            // Add the tag to the post's creation data.
            // Put a placeholder ({0}) where you want the tag to appear in the post text,
            // and then add the tag to the post's content items.
            SocialPostCreationData postCreationData = new SocialPostCreationData();
            postCreationData.ContentText = "I like {0}.";
            postCreationData.ContentItems = new SocialDataItem[1] { tagLink };

            try
            {

                // Get the context and the SocialFeedManager instance.
                ClientContext clientContext = new ClientContext(serverUrl);
                SocialFeedManager feedManager = new SocialFeedManager(clientContext);

                // Publish the post. This is a root post to the user's feed, so specify
                // null for the targetId parameter.
                feedManager.CreatePost(null, postCreationData);
                clientContext.ExecuteQuery();
                Console.Write("The post was published.");
                Console.ReadLine();
            }
            catch (Exception ex)
            {
                Console.Write("Error publishing the post: " + ex.Message);
                Console.ReadLine();
            }
        }
    }
}

関連項目See also