Категория Архиви: ПОЧИВКА

HTTP 406 Грешка при използване на ъглови $http.get срещу SharePoint ОСТАНАЛИТЕ крайни точки

Актуализация: Марк АД ndersson посочи, това голямо парче на информация: HTTP://blogs.Office.com/2014/08/13/JSON-Light-support-REST-SharePoint-API-Released/. Това обяснява много :).

Това може да бъде най-лошото заглавието на блог пост някога! Anyhoo.

Обикновено се правят всички на моята прототипи срещу O365 екземпляр. Имам моя личен случай, така че не трябва да се притеснявате за някой друг, засягащи. Като настрана-не забравяйте, когато ние наричаме се извършват около виртуални машини за нашите лаптопи с мъх – SQL Server, IIS, определящ Hyper-V срещу. VMWare? Anyhoo...

Се е развил ап използване на Ъгловата в тази среда, която прави, наред с други неща, Това:

$http.get(serverUrl)
.успех(функция(данни, статус, заглавки, довереник) {

var getLinksResponse = данни;

getLinksResponse.value.forEach(функция(Резултатът) {

// и така нататък и така пяна

Това е движение прав глоба в две различни среди SharePoint онлайн. Въпреки това, Когато колегата ми го пренесли на копие на Cloudshare, Той се HTTP 406 грешка (който е за първи път, аз винаги имам една, така... Уау, Предполагам). Направихме малко изследвания и забелязах, че заглавния блок на "Приемат" е изключено. SharePoint онлайн е напълно щастлив с:

Приемете: приложение/json

Но на cloudshare съд (което е SP на prem, домакин на виртуален сървър) Исках на класическия "odata = многословно" прибавка in както и:

Приемете: приложение/json;oData = многословно

Да се определи, че, Ние добавя заглавието като такива:

var довереник = {заглавки: {
"Приемат": "приложение/json;oData = многословно "
}
};

$http.get(serverUrl,довереник)
.успех(функция(данни, статус, заглавки, довереник) {

var getLinksResponse = данни;

getLinksResponse.value.forEach(функция(Резултатът) {

// и така нататък и така пяна

Че се отървах от 406, но това също се промени формата на отговор. Това беше повече... многословен. (Haha!) Ето крайния резултат и повече промени са били необходими:

var довереник = {заглавки: {
"Приемат": "приложение/json;oData = многословно "
}
};

$http.get(serverUrl,довереник)
.успех(функция(данни, статус, заглавки, довереник) {

var getLinksResponse = данни;

getLinksResponse.d.results.forEach(функция(Резултатът) {

// и така нататък и така пяна

Това само се превърна в 30 минута проблем за нас, така че ние lucked. Надявам се някой намери тази полезна.

</край>

Как да зададете хора като обхват за търсене / Източник на съдържание с помощта на SharePoint 2013 ПОЧИВКА API

Имах причина да работите на SharePoint 2013 API за търсене чрез почивка за първи път. Исках да търсене на хора, не документи. Ключът обучение тук е, че задавате източници на съдържание чрез своя GUID (или поне в този случай). В следните jQuery фрагмент показва как:

    loadExpertsAsync: функция() {

        jQuery.support.cors = вярно;

        $.Аякс({
            URL адрес: Това.CreateFullApiUrl() +
                "?querytext = "портали"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Умения,AboutMe,Интереси,Длъжност,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&RowLimit = 99",
            метод: "ВЗЕМИ",
            заглавки: { "Приемете": "приложение/json; oData = многословно" },
            кеш: фалшиви,
            успех: функция (Резултат) {

В моя случай, Аз съм тичане API срещу SharePoint онлайн. Да получите GUID, Аз последовател тези стъпвам:

  1. Достъп до центъра за администриране на SharePoint
  2. Изберете "търсене" от лявата навигация
  3. Изберете "Управление на източници на резултат"
  4. Изберете "Резултати от местните хора"
  5. Погледнете на сайта.

Моят URL погледна нещо подобно:

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

Параметърът на sourceid е това, което работи за мен.

(Аз разбирам, че sourceid всъщност може да бъде нещо като нещо постоянно с SP, but I’ll always check anyway 🙂 ).

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Пример SharePoint ОСТАНАЛИТЕ повиквания

Ето един набор от примерни почивка повиквания, които работят за мен и може да ви помогне, както и. Като от 02/2014, there are two examples 🙂

  1. Адресирате колона с интервали в името си
  2. Референтен мулти-изберете колона
  3. Хората търсене чрез почивка

 

Аз ще добави към това като времето минава.

Ето някои полезни мастила, аз открих, както и:

Адресирате колона с интервали в името си

Аз създадете списък по избор с една колона, наречена "Блог автор" (пространството между блог и автор).

$select за позоваване на тази колона е:

image

Просто замени пространството с "_x0020_". Виждаме _x0020_ в много примери в internets и почивка е не се различава.

Ако не направите това, Вие сте може да получите съобщение за грешка като това:

Изразът “Автор блог” не е валиден.

Лесно достатъчно.

Референтен мулти-изберете справочна колона

Създаден:

  1. Създаване на потребителски списък, наречен категории.
  2. Добави някои категории. Добавих категории thusly:image
  3. Създайте друг потребителски списък, наречен MockBlog и добавете категории като мулти-изберете списък колона (или колона на сайт, ако това е как да хвърли).

Добавяне на някои елементи в списъка с Mockblog и сте готови.

Повикване Аякс стил, използвайки jQuery ще изглежда нещо подобно:

serverUrl  = "/_api/уеб/списъци/GetByTitle("MockBlog")/елементи" +
             "?$изберете = заглавие,Категории/заглавие,Blog_x0020_Author/заглавие" + 
             "&$разширяване = Blog_x0020_Author,Категории";

Ние сме се казва от SharePoint "ми даде заглавието за всички категории (Категории/заглавие). Получаване на действителни стойности за Заглавие от $разширяванеING списъка категории." (Моят спокоен перифразира е вероятно доста хлабав, но това как интерпретирам го).

Ако сте прави това чрез JavaScript и използвайки цигулар да погледнете на изхода, получавате нещо подобно в замяна:

 

image

(По-горе е един обект JSON)

Хората търсене чрез почивка

Аз blogged за това отделно. Ключът е да зададете параметър на sourceid, чиято стойност е GUID на източника на съдържание на местните хора. (Източници на съдържание се използва да се нарича обхвати и е Моят о ми толкова трудно да обърне всичко с обхват за мен!).

Прочетете повече за него тук: http://www.mstechblogs.com/paul/?p=10385

 

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin

Бърз и лесен: Създаване на сайт на SharePoint с помощта на почивка

Има много ресурси около които показват как да направите това, но не мога да намеря изчерпателно за излизане на връзка, така че тук сме.

Можете да създадете сайт на SharePoint с помощта на ОСТАНАЛИТЕ API.  Тук е напълно печени пример:

<!--
    SiteRequestForm.html: Събиране на информация и създаване на сайт за потребителя.
-->

<център>
<таблица>
    <TR>
        <TD>Име на сайт:</TD>
        <TD><вход тип= "текст" Име= "Име на сайт" ИД= "Име на сайт" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <вход тип= "представя" ИД= "CreateSiteButton" стойност= "Създаване на сайт" />
        </TD>
    </TR>
</таблица>
</център>

<скрипт SRC="../Plugins/JQuery-1.11.0.min.js"></скрипт>

<скрипт>
var CreateSiteLogicContainer = {

    createSiteData: {
            "параметри": {
                __metadata: { "тип": "SP.WebInfoCreationInformation" },
                URL адрес: "Paultest1",
                Заглавие: "Paultest1",
                Описание: "почивка създаден уеб от Пол!",
                Език: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: фалшиви
            }
    },

    createSite: функция () {

        jQuery.support.cors = вярно;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").вал();
        
        $.Аякс({
            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

Моите основни мисли и learnings и от това са:

  • Този подход използва jQuery.  В моя случай, Моят jQuery библиотеката се намира в ".../ плъгини. "  Вие ще искате да промените това да сочи към вашия любим JQ местоположение.
  • Можете да копирате и поставите целия този фрагмент в уеб компонент за редактор на съдържание на страница и тя трябва да работи добре.  Вие ще искате да промените крайната точка на API повикване и се уверете, че можете да препращате JQ правилно.
  • URL Адресът е си API крайна точка.  В моя случай, Тя е създаване на подсайтове под https://bigapplesharepoint.com
  • Не е нужно да предоставят съдържание-дължина. Някои публикации в блога и MSDN документът предполага, че правите, но е станало за мен автоматично, което предполагам се обработват от самия разговор за .ajax $.
  • Този ред се изисква за да се избегне "забранени" отговор: "X-RequestDigest": $("#__REQUESTDIGEST").вал().  Има други начини да го направя, но това е доста хубаво.  Аз загубих връзката към блог, който предоставя този пряк път.  H/T за вас, мистериозен blogger!

Успех и се надявам това да помогне някого.

</край>

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 в този случай, тъй като знам, че growth-wise, няма да има повече от 200 или толкова редове се добавят към този списък в една година.  Ако тя стане неугледна, Ние може да реализира някои пейджинг надолу по пътя.

</край>

undefinedАбонирайте се за моя блог.

Следвайте ме на Twitter в http://www.twitter.com/pagalvin