在 SharePoint 中向帖子嵌入图像、视频和文档
了解如何向微博帖子添加 SocialAttachment 对象,这些对象在 SharePoint 社交源中呈现为嵌入图片、视频和文档。
在社交源中,最简单形式的帖子内容只包含文本,但还可以添加嵌入图片、视频和文档。 为此,请在定义帖子的 SocialPostCreationData 对象上使用 Attachment 属性。 帖子可包含一个附件(由 SocialAttachment 对象表示)。
注意
若要向帖子的内容添加提及、标记或链接,请将 SocialDataItem 对象添加到 SocialPostCreationData.ContentItems 属性。 有关详细信息,请参阅如何:在 SharePoint 中向帖子添加提及内容、标签以及网站和文档的链接。
本文所述的 API 来自 .NET 客户端对象模型。 如果您使用的是 JavaScript 对象模型等其他 API,则对象名称或相应 API 可能有所不同。 有关指向相关 API 文档的链接,请参阅其他资源。
使用代码示例向帖子添加附件的先决条件
本文的代码示例演示了如何将图像、视频和文档附件添加到微博帖子中。 这些示例来自使用以下 SharePoint 程序集的控制台应用程序:
Microsoft.SharePoint.Client
Microsoft.SharePoint.Client.Runtime
Microsoft.SharePoint.Client.UserProfilies
若要使用本文中的示例,需要上传图像、视频和文档。 若要使用视频示例,必须在服务器上启用视频功能,并将视频文件存储在资产库中。 若要在本地环境中使用文档示例,必须在环境中配置 Office Online。 有关详细信息,请参阅 在 SharePoint 中规划数字资产库 和 将 SharePoint 配置为使用 Office Online。
有关如何设置开发环境和创建控制台应用程序的说明,请参阅 如何:使用 SharePoint 中的 .NET 客户端对象模型创建和删除帖子以及检索社交源。
示例:在 SharePoint 中向帖子嵌入图像
以下代码示例发布了一个包含嵌入式图像的帖子。 它演示了如何执行以下操作:
创建表示图像的 SocialAttachment 对象。 SocialAttachment 指定了图像文件的 SocialAttachmentKind.Image 字段和 URI。
将图像对象添加到用于创建帖子的 SocialPostCreationData 对象的 Attachment 属性。
运行代码前,请先更改 URL 变量的占位符值。
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 EmbedImageInPost
{
class Program
{
static void Main(string[] args)
{
// Replace the following placeholder values with the actual values.
const string serverUrl = "http://serverName/siteName/";
const string imageUrl = "http://serverName/Shared%20Documents/imageName.jpg";
// Define the image attachment that you want to embed in the post.
SocialAttachment attachment = new SocialAttachment()
{
AttachmentKind = SocialAttachmentKind.Image,
Uri = imageUrl
};
// Define properties for the post and add the attachment.
SocialPostCreationData postCreationData = new SocialPostCreationData();
postCreationData.ContentText = "Look at this!";
postCreationData.Attachment = attachment;
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 中向帖子嵌入视频
以下代码示例发布了一个包含嵌入式视频的帖子。 它演示了如何执行以下操作:
使用 SocialFeedManager.GetPreview 方法获取表示视频附件的 SocialAttachment 对象。
将视频附件添加到用于创建帖子的 SocialPostCreationData 对象的 Attachment 属性。
本示例需要服务器启用视频功能,并将视频文件上载到资产库。 有关详细信息,请参阅使用代码示例的先决条件。
运行代码前,请先更改 URL 变量的占位符值。
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 EmbedVideoInPost
{
class Program
{
static void Main(string[] args)
{
// Replace the following placeholder values with the actual values.
const string serverUrl = "http://serverName/siteName/";
const string videoUrl = "http://serverName/Asset%20Library/fileName?Web=1";
try
{
// Get the context and the SocialFeedManager instance.
ClientContext clientContext = new ClientContext(serverUrl);
SocialFeedManager feedManager = new SocialFeedManager(clientContext);
// Get the video attachment from the server.
ClientResult<SocialAttachment> attachment = feedManager.GetPreview(videoUrl);
clientContext.ExecuteQuery();
// Define properties for the post and add the attachment.
SocialPostCreationData postCreationData = new SocialPostCreationData();
postCreationData.ContentText = "Look at this!";
postCreationData.Attachment = attachment.Value;
// 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 中向帖子嵌入文档
以下代码示例发布了一个包含嵌入式文档的帖子。 它演示了如何执行以下操作:
使用 SocialFeedManager.GetPreview 方法获取表示文档附件的 SocialAttachment 对象。
将文档附件添加到用于创建帖子的 SocialPostCreationData 对象的 Attachment 属性。
若要在本地环境中使用此示例,必须将环境配置为使用 Office Online。 有关详细信息,请参阅使用代码示例的先决条件。 在其他情况下,可以发布文档的链接,如如何:在 SharePoint 中向帖子添加提及内容、标签以及网站和文档的链接中所述。
运行代码前,请先更改 URL 变量的占位符值。
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 EmbedDocumentInPost
{
class Program
{
static void Main(string[] args)
{
// Replace the following placeholder values with the actual values.
const string serverUrl = "http://serverName";
const string documentUrl = "http://serverName/Shared%20Documents/fileName.docx";
try
{
// Get the context and the SocialFeedManager instance.
ClientContext clientContext = new ClientContext(serverUrl);
SocialFeedManager feedManager = new SocialFeedManager(clientContext);
// Get the document attachment from the server.
ClientResult<SocialAttachment> attachment = feedManager.GetPreview(documentUrl);
clientContext.ExecuteQuery();
// Define properties for the post and add the attachment.
SocialPostCreationData postCreationData = new SocialPostCreationData();
postCreationData.ContentText = "Post with a document.";
postCreationData.Attachment = attachment.Value;
// 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();
}
}
}
}
另请参阅
客户端对象模型中的 SocialPostCreationData 和 SocialAttachment
JavaScript 对象模型中的 SocialPostCreationData 和 SocialAttachment
服务器对象模型中的 SPSocialPostCreationData 和 SPSocialAttachment