Kategoria: Archiwum: RESZTA

HTTP 406 Błąd przy użyciu kątowe $http.get przeciwko SharePoint pozostałych punktów końcowych

Aktualizacja: Marc AD ndersson wskazał ten wielki kawałek informacji: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-API-released/. To wiele wyjaśnia :).

To może być najgorszym tytuł blogu nigdy! Anyhoo.

Zazwyczaj jak wszystkie moje prototypów przed wystąpienie O365. Mam mój osobisty wystąpienie, tak że nie trzeba się martwić o wpływających na nikogo innego. Tak na marginesie-pamiętam kiedy nazywamy prowadzona wokół maszyn wirtualnych na laptopy z mech – SQL Server, USŁUGI IIS, decydującym vs Hyper-V. VMWare? Anyhoo...

I rozwinął aplikacji za pomocą kątowa w tym środowisku, który robi, między innymi, to:

$http.get(serverUrl)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

To działa dobrze w dwóch różnych środowisk SharePoint. Jednakże, Kiedy mój kolega przeniesiony do wystąpienie Cloudshare, był już HTTP 406 błąd (który został po raz pierwszy kiedykolwiek dostał ten jeden, tak... yay, Tak myślę). Zrobiłem trochę badań i zauważyłem, że "Akceptuj" nagłówek był wyłączony. Usługi SharePoint online był całkowicie zadowolony z:

Zaakceptować: aplikacji/json

Ale cloudshare wystąpienie (czyli SP na prem, hostowane na serwerze wirtualnym) chciał classic "odata = verbose" dodaje się również w:

Zaakceptować: aplikacji/json;odata = verbose

Aby ustalić, że, Dodaliśmy nagłówka jako takie:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.value.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

Że dostał uwalniać od 406, ale to także zmieniony format odpowiedzi. To było więcej... pełne. (haha!) Zmiany były potrzebne i oto wynik końcowy:

var config = {nagłówki: {
'Accept': "aplikacja/json;odata = verbose'
}
};

$http.get(serverUrl,config)
.sukces(Funkcja(dane, stan, nagłówki, config) {

var getLinksResponse = dane;

getLinksResponse.d.results.forEach(Funkcja(theResult) {

// i tak dalej i tak piany

To tylko zwrócił się do 30 minut problem dla nas, więc mamy pecha. Mam nadzieję, że ktoś znajdzie to przydatne.

</koniec>

Jak określić ludzi jako zakres wyszukiwania / Źródła zawartości przy użyciu programu SharePoint 2013 REST API

Miałem powód do pracy z programem SharePoint 2013 API wyszukiwania poprzez odpoczynek po raz pierwszy. Ja potrzebował wobec zrewidować pod kątem osób, nie dokumentów. Ten klucz uczenia się że tutaj jest to, że można określić źródła zawartości za pomocą jej identyfikatora GUID (lub przynajmniej w tym przypadku). W poniższym urywku jQuery jak:

    loadExpertsAsync: Funkcja() {

        jQuery.support.cors = PRAWDA;

        $.AJAX({
            adres URL: to.CreateFullApiUrl() +
                "?QueryText = "portale"&element SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Umiejętności,AboutMe,Interesy,JobTitle,PastProjects,Adres URL zdjęcia,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&RowLimit = 99",
            Metoda: "Pobierz",
            nagłówki: { "Zaakceptować": "aplikacji/json; odata = verbose" },
            pamięci podręcznej: FAŁSZ,
            sukces: Funkcja (wynik) {

W moim przypadku, Jestem uruchomienie interfejsu API z SharePoint online. Aby uzyskać identyfikator GUID, Ja nast¹pi³ tych kroki:

  1. Dostęp do centrum administracji programu SharePoint
  2. Wybierz opcję "Szukaj" z lewej nawigacji
  3. Wybierz "Zarządzaj źródłami wynik"
  4. Wybierz "Wyniki miejscową ludność"
  5. Spójrz na adres.

Mój adres URL wyglądał::

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

Parametr sourceid to, co pracował dla mnie.

(Rozumiem, że element sourceid rzeczywiście może być swego rodzaju stałe rzeczy z SP, but I’ll always check anyway 🙂 ).

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Przykład programu SharePoint reszta rozmowy

Oto zestaw próbki reszta połączeń, które działa na mnie i może Ci pomóc, jak również. Jak z 02/2014, there are two examples 🙂

  1. Odwoływać się kolumna z pomieszczeń w swoim imieniu
  2. Odwołanie kolumna wielokrotnego wyboru
  3. Wyszukiwania ludzi poprzez odpoczynek

 

Dodam do tego w miarę upływu czasu.

Oto kilka przydatnych farb, znalazłem również:

Odwoływać się kolumna z pomieszczeń w swoim imieniu

Utworzyć niestandardową listę z kolumna o nazwie "Autor bloga" (przestrzeń między Blog i autor).

$select aby odwołać kolumna jest:

image

Po prostu zastąpić miejsca z "_x0020_". Widzimy _x0020_ w wielu przykładach całym internets i reszta nie różni.

Jeśli nie zrobisz, Jesteś mogących otrzymać komunikat o błędzie podobny do tego:

Wyrażenie “Autor bloga” nie jest ważne.

Dość łatwe.

Odwołanie kolumna odnośnika wielokrotnego wyboru

Umieszczaæ w górze:

  1. Utworzyć listę niestandardową o nazwie Kategorie.
  2. Dodać niektóre kategorie. Po dodaniu kategorii wygląda następująco:image
  3. Tworzenie innej listy niestandardowej o nazwie MockBlog i dodać kategorie jako kolumna listy wielokrotnego wyboru (lub stronie kolumny, jeśli to, jak się potoczą).

Dodać kilka elementów do listy Mockblog i gotowe.

Połączenie stylu Ajax przy użyciu jQuery będzie wyglądać tak:

serverUrl  = "/_api/web/list/GetByTitle("MockBlog")/elementy" +
             "?$Wybierz = tytuł,Kategorie/tytuł,Blog_x0020_Author/tytuł" + 
             "&$Rozwiń = Blog_x0020_Author,Kategorie";

Mówisz SharePoint "daj mi tytuł dla wszystkich kategorii (Kategorie/tytuł). Rzeczywiste wartości dla Tytuł przez $Rozwińna liście Kategorie ING." (Mój spokojny parafrazując jest chyba dość luźne, ale to jak jestem interpretacji).

Jeśli robisz to za pomocą JavaScript i spojrzeć na dane wyjściowe przy użyciu skrzypek, masz coś takiego w zamian:

 

image

(Powyżej jest obiekt JSON)

Wyszukiwania ludzi poprzez odpoczynek

Mam blogu o tym osobno. Najważniejsze jest, aby określić parametr sourceid, którego wartość jest identyfikatorem GUID mieszkańców źródła zawartości. (Źródeł zawartości można nazwać zakresy i to jest moje oh-my nie tak trudno połączyć wszystko zakres dla mnie!).

Przeczytaj więcej o go tutaj: http://www.mstechblogs.com/paul/?p=10385

 

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Szybkie i łatwe: Tworzenie witryny programu SharePoint przy użyciu reszta

Istnieje wiele zasobów wokół tego pokazu, jak to zrobić, ale nie mogłem znaleźć link kompleksowe go do, Więc tu jesteśmy.

Można utworzyć witryny programu SharePoint przy użyciu interfejsu API REST.  Oto przykład pełni pieczone:

<!--
    SiteRequestForm.html: Zbieranie informacji i tworzenie strony internetowej dla użytkownika.
-->

<centrum>
<Tabela>
    <TR>
        <TD>Nazwa witryny:</TD>
        <TD><dane wejściowe Typ= "tekst" Nazwa= "Nazwa witryny" Identyfikator= "Nazwa witryny" /></TD>
    </TR>
    <TR>
        <TD colspan= "2">
            <dane wejściowe Typ= "submit" Identyfikator= "CreateSiteButton" wartość= "Utwórz witrynę" />
        </TD>
    </TR>
</Tabela>
</centrum>

<skrypt src="../Plugins/jQuery-1.11.0.min.js"></skrypt>

<skrypt>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametry": {
                __metadata: { "typ": "SP.WebInfoCreationInformation" },
                Adres URL: "Paultest1",
                Tytuł: "Paultest1",
                Opis: "reszta utworzone sieci web przez Paul!",
                Język: 1033,
                Paź: "sts",
                UseUniquePermissions: FAŁSZ
            }
    },

    createSite: Funkcja () {

        jQuery.support.cors = PRAWDA;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.AJAX({
            adres URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            Metoda: "POST",

            nagłówki: {
                "Akceptuj": "aplikacja/json; odata = verbose",
                "content-type": "aplikacja/json;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            dane: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            sukces: Funkcja () { alarm("sukces"); },
            błąd: Funkcja () { alarm("błąd"); }

        });
    },

    wireUpForm: Funkcja () {
        $("#CreateSiteButton").Kliknij przycisk(Funkcja () {
            alarm("Się spróbować i tworzenia witryny.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skrypt>

Po pomyślnym, otrzymasz pakiet JSON w odpowiedzi jak to:

image

Mój klucz myśli i wiedza, ze to między innymi:

  • Ta metoda używa jQuery.  W moim przypadku, moja biblioteka jQuery znajduje się w ".../ plugins. "  Chcesz zmienić, wskaż lokalizację ulubionego JQ.
  • Można skopiować i wkleić cały fragment tego Web Part Edytor zawartości na stronie i powinno działać dobrze.  Będziesz chciał zmienić punkt końcowy połączenia API i upewnij się, że odwołanie JQ poprawnie.
  • Adres URL jest twój API punktu końcowego.  W moim przypadku, to jest tworzenie podstron pod https://bigapplesharepoint.com
  • Trzeba zapewnić elementu content-length. Niektóre wpisy na blogu i MSDN dokumentu oznacza, że można zrobić, ale stało się dla mnie automatycznie, które jest obsługiwane przez wywołanie .ajax $, sam.
  • Ten wiersz jest wymagane w celu uniknięcia odpowiedź "zakazane": "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Istnieją inne sposoby na to, ale to jest bardzo ładne.  Straciłem link do bloga, że ten skrót.  H/T do Ciebie, tajemniczy blogger!

Powodzenia i spodziewać się ten współpracownik ktoś.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin

Szybkie i proste: SharePoint reszta rozmowy tylko zwraca 100 Rekordy

Pracuję na publicznej stronie internetowej stoi na mojej praktyce SharePoint tutaj w Nowy Jork i wykorzystuje wiele wywołań JavaScript i reszta pokazanie zawartości.

Podczas głównego rozwoju, Po prostu stworzyć małe dataset z 10 albo więc wiersze listy niestandardowej i moje reszta rozmowy z tam.  Raz wpadł na liście mają kilka kilkaset wierszy danych do testowania dla przewidywanego wzrostu, Dowiedziałem się, że był już dokładnie 100 wierszy zwracanych z powrotem na moje reszta rozmowy.

Jest to bardzo prosta sprawa, aby adres.  W moim przypadku (i uważam, że w większości przypadków), Domyślnie reszta wymaga programu SharePoint (i ewentualnie jak standardem?) Powrót 100 wiersze.  Zwraca więcej niż domyślny, Użyj parametru $top na Twój telefon, jak w:

Pobierz /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elementy?$Wybierz = ID,Tytuł,Kategorie/tytuł,Blog_x0020_Author/tytuł,DatePublished,BlogSummary&$Rozwiń = Blog_x0020_Author,Kategorie&$Filtr =&$góry = 9999

Wybrałem 9999 w tym przypadku od tego czasu wiem, że growth-wise, nie będzie więcej niż 200 lub tak wiersze dodane do tej listy w ciągu roku.  Jeśli staje się brzydka, możemy wdrożyć niektóre stronicowania w dół drogi.

</koniec>

undefinedSubskrybowanie mój blog.

Follow me on Twitter wiek na http://www.twitter.com/pagalvin