分類存檔: 休息

HTTP 406 使用角 $HTTP.get 針對 SharePoint 休息結束點時的錯誤

更新: 馬克 AD ndersson 指出資訊這個偉大的作品: http://blogs.office.com/2014/08/13/json-light-support-rest-sharepoint-api-released/. 這也解釋了很多 :).

這可能是最糟糕的一篇博客文章標題過! 安美居.

我通常做所有我針對 O365 實例的原型. 我有我個人的實例,所以,我不需要擔心影響別人. 順便說一句 — — 記得當我們稱之為進行虛擬機器周圍長滿了苔蘚 — — 我們筆記本電腦上 SQL Server, IIS, 決定 HYPER-V vs. VMWare? 安美居......

已經開發了一個應用程式,在這種環境不使用角, 除其他事項外, 這:

$HTTP.get(serverUrl)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.value.forEach(功能(結果) {

// 和這麼泡沫

這兩種不同 SharePoint 線上環境中工作正常. 不過, 當我的同事將其移植到一個 Cloudshare 實例時, 他正 HTTP 406 錯誤 (其中第一次我收到過那個, 所以...耶, 我想). 我們做了一些研究,發現"接受"標題關閉. SharePoint 線上感到滿意:

接受: 應用程式/json

但 cloudshare 實例 (即 SP prem, 在虛擬伺服器中承載) 想要經典"odata = 詳細"以及在中添加:

接受: 應用程式/json;odata = 詳細

要解決這個問題, 我們添加了這樣的標題:

var config = {標題: {
接受: 應用程式/json;odata = 詳細 '
}
};

$HTTP.get(serverUrl,配置)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.value.forEach(功能(結果) {

// 和這麼泡沫

那擺脫 406, 但它也改變了回應的格式. 它是更多......詳細. (哈哈!) 需要更多的變化,這裡是最後的結果:

var config = {標題: {
接受: 應用程式/json;odata = 詳細 '
}
};

$HTTP.get(serverUrl,配置)
.成功(功能(資料, 狀態, 標題, 配置) {

var getLinksResponse = 資料;

getLinksResponse.d.results.forEach(功能(結果) {

// 和這麼泡沫

這只變成 30 我們的小問題, 所以我們很幸運. 希望有人發現這很有用.

</結束>

如何指定人為搜尋範圍 / 使用 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 其餘部分調用僅返回 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