如何使用CSOM从SharePoint Online检索共享信息对象?

时间:2017-02-13 00:23:08

标签: asp.net sharepoint sharepoint-online csom

我正在使用SharePoint客户端对象模型在线登录S​​harePoint,然后检索列表以获取SharePoint上的文档。然后我想获得这些文档的共享链接。这就是我现在正在做的事情:

using (var context = new ClientContext(siteURL))
{
     context.Credentials = new SharePointOnlineCredentials(login, securePassword);
     context.Load(context.Web, w => w.Title);
     context.ExecuteQuery();

     List docList = context.Web.Lists.GetByTitle("Documents");
     context.Load(docList);
     // This creates a CamlQuery that has a RowLimit of 100, and also specifies Scope="RecursiveAll"
     // so that it grabs all list items, regardless of the folder they are in.
     CamlQuery query = CamlQuery.CreateAllItemsQuery(100);
     ListItemCollection items = docList.GetItems(query);

     // Retrieve all items in the ListItemCollection from List.GetItems(Query).
     context.Load(items);
     context.ExecuteQuery();
     foreach (ListItem listItem in items)
     {
          var sharingInfo = ObjectSharingInformation.GetListItemSharingInformation(
             context, docList.Id, listItem.Id, false, true, false, true, true, true);

          context.Load(sharingInfo);
          context.ExecuteQuery();
          string str = sharingInfo.AnonymousEditLink;
     }
}

这里的问题是sharingInfo对象有一个名为AnonymousEditLink的字段,但它是一个空字符串。我不知道为什么这是一个空字符串。这是生成共享链接的正确方法吗?

我也试过这个(但无济于事):

var sharingInfo = ObjectSharingInformation.GetObjectSharingInformation(
                    context, listItem, false, true, false, true, true, true, true);

我指的是此处显示的方法:https://sharepoint.stackexchange.com/questions/143612/how-to-retrieve-the-shared-link-of-a-file-programmatically

1 个答案:

答案 0 :(得分:0)

我一直在使用GetListItemSharingInformation进行一些工作/测试,并且一旦用户访问了通过电子邮件收到的链接,AnonymousEditLink似乎就会被填充。

SharedWithUsersCollection也是如此。基本上,一旦用户访问了链接。您将发现已填充属性。