每月档案: 2 月 2014

如何指定人为搜索范围 / 使用 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

示例 SharePoint 其余部分调用

这里有一组示例 REST 调用,工作对我来说,也会帮助你理解. 作为的 02/2014, there are two examples 🙂

  1. 引用其名称中的空格的列
  2. 多项选择的列的引用
  3. 执行通过 REST 的人搜索

 

将添加这随着时间的流逝.

在这里我也找到一些有用的油墨:

引用其名称中的空格的列

我用一个名为"博客作者"列创建自定义列表 (博客与作者之间的空间).

$select 来引用该列是:

image

只需替换"_x0020_"的空间. 我们看到互联网 _x0020_ 在许多例子中的,剩下的就是没有什么不同.

如果你不这样做, 你就有可能得到一个像这样的错误消息:

表达式 “博客作者” 是无效的.

足够简单.

参考多项选择查阅列

设置:

  1. 创建一个名为类别的自定义列表.
  2. 添加某些类别. 我广交添加类别:image
  3. 创建另一个称为 MockBlog 的自定义列表,添加类别作为一个多选列表列 (或网站列,如果这就是你的滚).

你 Mockblog 列表中添加一些项,你准备好了.

使用 jQuery Ajax 样式调用将会看起来像这样:

serverUrl   = "/_api/web/列表/GetByTitle('' MockBlog)/项目" +
             "?$选择 = 标题,类别/标题,Blog_x0020_Author/标题" + 
             "&$扩大 = Blog_x0020_Author,类别";

我们告诉 SharePoint"给我标题的所有类别 (类别/标题). 得到的实际值 标题$扩大ing 类别列表" (我宁静的意译是可能相当松散, 但是,这我如何解释它).

如果你这么做通过 JavaScript 和使用提琴手来看看输出, 你得到这样的回报:

 

image

(以上就是一个 JSON 对象)

执行通过 REST 的人搜索

我这博客上分别. 关键是要指定源 id 参数,其值是当地人民内容源的 GUID. (内容源用于被称为作用域,它是我 — — 哦 — — 我努力不去调用一切对我来说一个范围!).

了解更多关于它在这里: http://www.mstechblogs.com/paul/?p=10385

 

</结束>

undefined订阅我的博客.

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

快速、 方便: 创建使用其余的 SharePoint 站点

有很多的周围显示资源如何执行此操作, 但我找不到一个全面转到链接, 所以在这里我们是.

您可以创建使用其他 API 的 SharePoint 站点。  这里是一个完全被烘烤的示例:

<!--
    SiteRequestForm.html: 收集信息,并为该用户创建一个站点.
-->

<中心>
<>
    <tr>
        <运输署>站点名称:</运输署>
        <运输署><输入 类型="文本" 名称="SiteName" id="SiteName" /></运输署>
    </tr>
    <tr>
        <运输署 colspan="2">
            <输入 类型="提交" id="CreateSiteButton" 价值="创建网站" />
        </运输署>
    </tr>
</>
</中心>

<脚本 src="../Plugins/jquery-1.11.0.min.js"></脚本>

<脚本>
var CreateSiteLogicContainer = {

    createSiteData: {
            "参数": {
                __metadata: { "类型": "SP。WebInfoCreationInformation" },
                Url: "Paultest1",
                标题: "Paultest1",
                说明: "其余创建 web 由保罗!",
                语言: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: false
            }
    },

    createSite: 功能 () {

        jQuery.support.cors = true;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").瓦尔();
        
        $.ajax({
            url: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            方法: "开机自检",

            标题: {
                "接受": "应用程序/json; odata = 详细",
                "内容类型": "应用程序/json;odata = 详细",
                "X-RequestDigest": $("# __REQUESTDIGEST").瓦尔()
            },

            数据: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            成功: 功能 () { 警报("成功"); },
            错误: 功能 () { 警报("错误"); }

        });
    },

    wireUpForm: 功能 () {
        $("#CreateSiteButton").单击(功能 () {
            警报("努力尝试,并创建网站。");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</脚本>

当成功时, 你得到一个 JSON 数据包中像这样的反应:

image

我的主要思想和知识包括从:

  • 此方法使用 jQuery。  以我为例, 我 jQuery 库位于"....../ 插件."  你会想要更改,使其指向您最喜爱的 JQ 位置.
  • 您可以复制并粘贴到页面上的内容编辑器 Web 部件的那整个代码段,它应该可以正常。  你会想要改变的 API 调用的结束点,请确保您正确地引用 JQ.
  • 该 URL 是相对于您的 API 的终结点。  以我为例, 它创建子网站下方 https://bigapplesharepoint.com
  • 您不需要提供一个内容长度. 一些博客文章和 MSDN 文档意味着你做, 但对我来说会自动发生, 我猜这是正在处理的 $虽然调用本身.
  • 这条线有需要提供避免"禁忌"的响应: "X-RequestDigest": $("# __REQUESTDIGEST").瓦尔().  还有其他的方法去做, 但这是很好。  提供此快捷方式的博客,我失去了联系。  H/T 到你, 神秘的博客!

好运,希望这可以帮助一个人出去.

</结束>

undefined订阅我的博客.

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

克服恼人的问题与 SharePoint 快速启动中的相对 Url

我想要将链接添加到快速启动导航那天和 SharePoint 告诉我:

image

纯文字版本的是:

确保该 URL 是有效的和开头也是有效的字符 (数字符号 (#) 或正斜杠 (/)) 或有效支持的协议 (例如, http://’, https://’, 文件://’, ftp://’, mailto:’, ' 新闻:’).

"Blech 和痘!"我说.

对此的解决方法是使用 JavaScript 在快速启动中查找已知的链接和重写其行为.

对此进行测试, 添加新链接到您的测试站点难耐:

image

我使用 jQuery. 解决这个问题, 得到一些 JavaScript 和 jQuery 拖到页上使用您喜欢的方法和代码像这样的一条线:

 

$(文档).准备好了( 功能 () {

    $("一:包含(测试 URL 替换)").单击(功能 () { 警报("更改的单击行为!"); 返回 false;});

});

鲍勃的你叔叔.

JQuery 选择器查找每个 <一> 标记在其名称中包含"测试 URL 替换". 您可能想要查找-曲调,根据您的链接和这种.

笔者(功能() 重写 SharePoint 将所做的一切当用户单击. 请确保您"返回 false",否则它会做你的东西,然后尝试 href 东西太, 几乎可以肯定不是你的目标.

这样做的和在 SharePoint 的在线环境中测试,但应该很好的工作 2010 和早些时候太.

</结束>

undefined订阅我的博客.

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

快速和简单: SharePoint 其余部分调用仅返回 100 记录

我一直在一个公共的面对网站上为我的 SharePoint 实践中 纽约 然后使用大量的 JavaScript 和休息的来电显示的内容.

期间主线发展, 我只是创建一个小的数据集与 10 或所以我休息电话和自定义列表中的行从那里拉扯了。  一次我撞了要有几个几百行的数据来测试预期的增长的列表, 我发现我正正好 100 返回回在我休息的电话行.

这是非常简单的事情到地址。  以我为例 (在大多数情况下,我相信), 默认的其余部分调用到 SharePoint (和可能作为一种工业标准?) 返回 100 行。  要比默认值更多的回报, 在您的电话上使用 $top 参数, 如在:

得到 /Insights Dev/_api/web/lists/GetByTitle('' MockBlog)/项目?$选择 = ID,标题,类别/标题,Blog_x0020_Author/标题,DatePublished,BlogSummary&$扩大 = Blog_x0020_Author,类别&$筛选器 =&$顶部 = 9999

我拿起 9999 在这种情况下既然都知道,正常的生长发育, 不会有多个 200 或者,所以一年中,我们已添加到此列表中行。  如果它变得笨拙, 我们可以实现一些分页在路上.

</结束>

undefined订阅我的博客.

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

快速和简单: 解决"无效 URL 参数” UpdateListItems 在 lists.asmx 的问题

当通过 lists.asmx 和 UpdateListItems 一起工作, 很容易地生成错误:

无效的 URL 参数.

所提供的 URL 包含无效命令或值. 请再次检查 URL.

你可以得到此错误,当您忘了包括 ID 在要更新的字段的列表。  这, 像很多这些 SP 的 web 服务, 是有点违反直觉的因为你需要的 ID 属性中包含的 ID <方法> 元素。  你不更新 ID 和可能永远不会想在第一次的地方.

此 SOAP 信封工程:

<soapenv:信封 xmlns:soapenv =' http://schemas.xmlsoap.org/soap/envelope/'>
  <soapenv:正文>                      
    <UpdateListItems xmlns =' http://schemas.microsoft.com/sharepoint/soap/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <更新>                     
         <批处理 OnError ="继续">
          <方法 ID ="1" Cmd ="更新">
            <字段名称 ="CooperativeLock">锁定!</字段>
            <字段名称 ="ID">1</字段>
          </方法>
        </批处理>                     
        </更新>                
      </UpdateListItems>             
  </soapenv:正文>         
</soapenv:信封>

如果你带出来的 ID 字段引用然后你会令人讨厌的"无效 URL 参数"消息.

</结束>

undefined订阅我的博客.

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