分类存档: SharePoint 的 Web 服务

如何指定人为搜索范围 / 使用 SharePoint 的内容源 2013 其余的 API

我有理由与 SharePoint 工作 2013 搜索 API 通过第一次休息. 我想要搜索的人, 不是文档. 主要学习这里您指定通过其 GUID 的内容源 (或至少在此情况下). 下面的 jQuery 代码段演示如何:

    loadExpertsAsync: 功能() {

        jQuery.support.cors = true;

        $.ajax({
            url: .CreateFullApiUrl() +
                "?querytext = '门户'&源 id ='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,技能,怀念,利益,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            方法: "获取",
            标题: { "接受": "应用程序/json; odata = 详细" },
            高速缓存: false,
            成功: 功能 (结果) {

以我为例, 我运行了 API 针对 SharePoint 在线. 若要获取 GUID, 跟随了这些步骤:

  1. 访问 SharePoint 管理员中心
  2. 选择从左侧导航栏的"搜索"
  3. 选择"管理结果来源"
  4. 选择"本地人结果"
  5. 看看该 URL.

我的 URL 看起来有点像:

https://xyzzy-admin.sharepoint.com/_layouts/15/searchadmin/EditResultSource.aspx?level=tenant&sourceid=b09a7990%2D05ea%2D4af9%2D81ef%2Dedfab16c4e31&view=1

源 id 参数是什么为我工作.

(我明白,源 id 实际上可能是永久的事与 SP, 但我还是会经常检查🙂 ).

</结束>

undefined订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Lists.asmx, GetListItems 和文件夹

我做了一些调查有人今天周围作为 SharePoint 的一部分提供的 list.asmx web 服务 2010 (及更早版本).  她之所以能够获得在根文件夹的列表项 (包括子文件夹的名称), 但不能在子文件夹中的项目。  我做了一些环顾四周在互联网络上,这是一个令人惊讶的常见的问题。  然而, 没能得到很好简单问题的答案, "如果我知道该文件夹, 如何获取文件夹中的项目?”  要诚实, 因为我想我自己对这一出图了一会儿我并没有试图在所有的努力 微笑.

进行此设置, 我创建了名为"博客情境"站点和自定义列表名称为"自定义列表的子文件夹"。  然后创建文件夹名:

  • 一年 2005
  • 一年 2006
  • 一年 2007

我添加的文件夹"2006 年"几个项目。  这是它看起来像:

image

我的朋友并不是编写 C# 代码,但宁愿使用 Java, 所以 SOAP 信封是她的真正需要。  达到目标,, 写了有点 jQuery,然后用于小提琴手获得实际的 HTTP 会话.

这里是有关 jQuery (我复制代码下下面如果要复制/粘贴):

image

他们第一个关键是要包括两个 <queryOptions> 和 <QueryOptions> 节点。  第二个关键是, <文件夹> 节点是一个 URL,客户端可以访问.

可能有其他方法来获得这, 但这工作对我来说,使用 jQuery 时.

这里是上述的 SOAP 信封:

<soapenv:信封 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:正文>
    <GetListItems xmlns =’
http://schemas.microsoft.com/sharepoint/soap/’>
      <listName>自定义列表的子文件夹</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef 名称 =' 标题’ />
          <FieldRef 名称 ='EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <文件夹>
http://demoserver1/博客 子文件夹/2006 年年方案/列表/自定义列表</文件夹>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:正文>
</soapenv:信封>

很多例子和讨论围绕这让我相信我所需要的是 <QueryOptions> 并指定文件夹名称。  对我来说, 我需要这两包内 <queryOptions> 也可以指定完全限定的 URL <文件夹> 节点.

这里是 jQuery AJAX 安装程序:

$(文档).准备好了(功能() {
       var soapEnv =
           "<soapenv:信封 xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:正文> \
                    <GetListItems xmlns =’http://schemas.microsoft.com/sharepoint/soap/’> \
                       <listName>自定义列表的子文件夹</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef 名称 =' 标题’ /> \
                              <FieldRef 名称 ='EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <文件夹>http://demoserver1/Blogging 子文件夹/2006 年年方案/列表/自定义列表</文件夹> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:正文> \
           </soapenv:信封>";

</结束>

订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin

Lists.asmx, GetList 和"的值不能为空”

我今天发现的 GetList() 中的方法 lists.asmx web 服务已非常仔细地调用或很容易引发一种神秘"的值不能为空"的异常 (这是假设你过去的更糟的一般错误消息, "类型的异常 ' Microsoft.SharePoint.SoapServer.SoapServerException’ 引发了。")  具体, 我发现你不能提供任何种类的前缀的 GetList 方法。  下面的 jQuery 片断阐释了点:

image

如果你这样做, 以"值不能为空"按此 web 服务响应 小提琴手-提供 HTTP 谈话全文:

<?xml 版本 ="1.0" 编码 ="utf-8"?>
  <肥皂:信封
     xmlns:soap ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi ="
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <肥皂:正文>
    <肥皂:故障>
      <faultcode>肥皂:服务器</faultcode>
      <faultstring>
        类型的异常 ' Microsoft.SharePoint.SoapServer.SoapServerException’ 引发了.
      </faultstring>
      <详细>
        <errorstring xmlns ="
http://schemas.microsoft.com/sharepoint/soap/">
值不能为空.
        </errorstring>
      </详细>
    </肥皂:故障>
  </肥皂:正文>
</肥皂:信封>

答案是肯定的, 您很可能不会添加该"s0"前缀你自己, 但是一些工具是容易做这件事 (像日食).

这是更令人困惑 / 令人沮丧,因为其他的方法能容忍前缀。  例如, " GetListCollection 方法不介意是否它前缀, 即使使用像"xyzzy"废话前缀:

image

这"的值不能为空"似乎相当常见,所以希望这会帮助别人,在将来的 lists.asmx 与.

</结束>

订阅我的博客.

跟我在 Twitter 上 http://www.twitter.com/pagalvin