每月檔案: 2 月 2014

如何指定人為搜尋範圍 / 使用 SharePoint 的內容源 2013 其餘的 API

我有理由與 SharePoint 工作 2013 搜索 API 通過第一次休息. 我想要搜索的人, 不是文檔. 主要學習這裡您指定通過其 GUID 的內容源 (或至少在此情況下). 下面的 jQuery 程式碼片段演示如何:

    loadExpertsAsync: 功能() {

        jQuery.support.cors = 真正的;

        $.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, 有兩個例子🙂

  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 類別清單" (我 rest 風格的釋義是可能真的很鬆散, 但這個怎麼我用的).

如果你這麼做通過 JavaScript 和使用的提琴手,看看輸出, 你獲得了一些像這樣回報:

 

image

(以上是一個 JSON 物件)

執行通過 REST 的人民搜索

我在博客上寫這分開. 關鍵是要指定其值為當地人民內容源的 GUID 的源 id 參數. (內容源用於被稱為作用域,它是哦-我使勁不打電話的一切給我的範圍!).

閱讀更多關於它在這裡: 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 = 真正的;

        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 記錄

我一直在一個公共的面對 web 網站為在我 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 在這種情況下因為我知道 growth-wise, 不會有多個 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