分類存檔: SharePoint 的 Web 服務

如何指定人為搜尋範圍 / 使用 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

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