Kategoriaj Arkivoj: RIPOZO

HTTP 406 Eraro Kiam Uzanta Angular $http.Akiras #Kontra? SharePoint RIPOZA Fino Punktoj

Ĝisdatigo: Marc AD ndersson atentigis #?i tiu grandan pecon de info: Http://Blogoj.Oficejo.Com/2014/08/13/json-lumo-subteno-ripozo-sharepoint-api-liberigita/. Kiu klarigas tre :).

Kiu povas esti la plej malbona titolo de bloga #po?to iam ajn! Anyhoo.

Mi tipe faras ĉiujn de mia prototyping kontraŭ O365 okazo. Mi havas mian propran okazon por ke mi ne devas esti maltrankvilita pri influanta iun ajn alia. Kiel flankenmetite ?? Memoras kiam nin vokas portita #?irka? virtualaj #ma?ino sur niaj tekkomputiloj kun MUSKO ?? SQLa Servilo, IIS, Decidanta Hyper-V #kontra?. VMWare? Anyhoo?

Mi evoluigis app uzanta Angular en #?i tiu medio kiu faras, Inter aliaj aferoj, Tio ĉi:

$Http.Akiras(ServerUrl)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.Valoro.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

Tio ĉi estis laboranta nuran monpunon en du malsama SharePoint enretaj medioj. Tamen, Kiam mia kolego ported ?i al Cloudshare okazo, Li estis akiranta HTTP 406 Eraro (Kiu estis la unua tempo mi iam ajn akiris ke unu, Tiel ?? Yay, Mi konjektas). Ni faris iom de esploro kaj rimarkita ke la “Akcepti” titolon estis ekstere. SharePoint enreta estis perfekte #feli?a kun:

Akcepti: Apliko/json

Sed la cloudshare okazo (Kiu estas SP sur prem, Gastigita en virtuala servilo) Dezirita la #klasika?o ??Datumo=verbose?? Aldonita en #anka?:

Akcepti: Apliko/json;Odata=verbose

Ripari tion, Ni aldonis la titolon kiel tia:

Var config = {Titoloj: {
??Ccept?: ??Pplication/json;Odata=verbose?
}
};

$Http.Akiras(ServerUrl,Config)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.Valoro.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

Kiu akiris liverita de la 406, Sed ĝi ankaŭ ŝanĝis la formaton de la respondo. Ĝi estis pli … verbose. (Haha!) Pli da #?an?o estis postulita kaj #?i tie?? La fina rezulto:

Var config = {Titoloj: {
??Ccept?: ??Pplication/json;Odata=verbose?
}
};

$Http.Akiras(ServerUrl,Config)
.Sukceso(Funkcio(Datumoj, Statuso, Titoloj, Config) {

Var getLinksResponse = datumo;

GetLinksResponse.D.Rezultoj.ForEach(Funkcio(TheResult) {

// Kaj tiel plu kaj do #?a?mo

#Tio ?i nur turnita en 30 Eta problemo por ni, Do ni lucked ekstere. Espereble iu trovas #?i tiu utilan.

</Fino>

Kiel Specifi Homojn kiel #Ser?o Amplekso / Kontenta Fonto Uzanta SharePoint 2013 RIPOZA API

Mi havis kialon labori kun la SharePoint 2013 Serĉa API tra RIPOZO por la unua tempo. Mi deziris serĉi homojn, Ne dokumentoj. La kerna lernado ĉi tie estas ke vi specifas kontentajn fontojn tra ĝia GUID (#A? #almena? en #?i tiu kazo). La sekvanta jQuery eretaj rezultoj kiel:

    LoadExpertsAsync: Funkcio() {

        JQuery.Subteno.Cors = Vera;

        $.Ajax({
            Url: Tio ĉi.CreateFullApiUrl() +
                "?Querytext='portaloj'&Sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&Selectproperties='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Kapabloj,AboutMe,Interesoj,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&Rowlimit=99",
            Metodo: "GET",
            Titoloj: { "Akcepti": "Apliko/json; Odata=verbose" },
            Konservejo: Falsa,
            Sukceso: Funkcio (Rezulto) {

En mia kazo, I?? Kuranta la API #kontra? SharePoint enreta. Akiri la GUID, Mi sekvis #?i tiu #pa?o:

  1. Aliri la SharePoint admin centron
  2. Elektita ??Earch?? De la maldekstra mana navigado
  3. Elektita ??Anage Rezultaj Fontoj?
  4. Elektita ??Ocal Homaj Rezultoj?
  5. Rigardi la URL.

Mia URL rigardis ion #?ati:

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

La sourceid parametro estas kio laborita por mi.

(Mi komprenas ke la sourceid efektive povas esti speco de konstanta afero kun SP, but I’ll always check anyway 🙂 ).

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Ekzemplo SharePoint RIPOZAJ Vokoj

Ĉi tie-a aro de ekzempla RIPOZO vokas ke laboro por mi kaj povas helpi vin ekstere ankaŭ. Kiel de 02/2014, there are two examples 🙂

  1. Referenci Kolumnon Kun Spacoj En #?ia Nomo
  2. Referenci Multi-Elektita Kolumno
  3. Elfari Homan #Ser?o tra RIPOZO

 

I??L aldonas #tio ?i kiel tempaj transludoj.

#?I tie estas kelkaj utilaj inkoj I??E trovita #anka?:

Referenci Kolumnon Kun Spacoj En #?ia Nomo

Mi kreas #la?menda liston kun kolumno nomis ??#?Tipo #A?toro? (Spaco inter Blogo kaj #A?toro).

La $elektita referenci tiun kolumnon estas:

image

Simple anstataŭigi la spacon kun “_x0020_”. Ni vidas la _x0020_ en multaj ekzemploj trans la interretoj kaj RIPOZO estas ne malsama.

Se vi surmetas?? Faras tion, Vi??E inklina akiri eraran #mesa?o tiel:

La esprimo “Bloga #A?toro” Ne estas valida.

Facile #sufi?a.

Referenci Multi-Elektita Lookup Kolumno

Instalita:

  1. Krei #la?menda liston nomita Kategoriojn.
  2. Aldoni kelkajn kategoriojn. Mi aldonis kategoriojn thusly:image
  3. Krei alian #la?menda liston vokis MockBlog kaj aldoni Kategoriojn kiel multi-elektita lista kolumno (#A? eja kolumno se tio?? Kiel vi rulas).

Aldoni kelkajn erojn al via Mockblog listo kaj vi??E preta.

Ajax stila voko uzanta jQuery rigardos ion tiel:

ServerUrl  = "/_Api/#aranea?o/listoj/GetByTitle('MockBlog')/Eroj" +
             "?$Elektita=Titolo,Kategoria/Titolo,Blogo_x0020_#A?toro/Titolo" + 
             "&$Vastigi=Blogon_x0020_#A?toro,Kategorioj";

Ni??E diranta SharePoint ??Ive mi la titolo por #?iuj la Kategorioj (Kategoria/Titolo). Akiri la realajn valorojn por Titolo De $VastigiIng la Kategoria listo.” (Mia RESTful parafrazanta estas #ver?ajne #sufi?e #malstre?a, Sed #tio ?i kiel I?? Interpretanta ?in).

Se vi??E faranta #tio ?i tra JavaScript kaj uzanta Fiddler rigardi la produktadon, Vi akiras ion tiel en reveno:

 

image

(La sur estas JSONa objekto)

Elfari Homan #Ser?o tra RIPOZO

Mi blogged pri #tio ?i aparte. La #?losilo estas specifi sourceid parametro kies valoro estas la GUID de la Loka Homa enhava fonto. (Kontentaj fontoj uzita esti vokita ampleksojn kaj ?i?? Mia-oh-mia tiel malfacile ne voki #?io amplekso por mi!).

Legita pli da pri ĝi ĉi tie: http://www.mstechblogs.com/paul/?p=10385

 

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Rapide kaj Facile: Krei SharePoint Ejo Uzanta RIPOZON

Estas multaj rimedoj #?irka? tiu rezulto kiel faras #tio ?i, Sed mi couldn?? Trovas ampleksan iri-ligi, Tiel #?i tie ni estas.

Vi povas krei SharePoint ejo uzanta la RIPOZAN API.  #?I tie?? plene bakita ekzemplon:

<!--
    SiteRequestForm.Html: Kolekti informon kaj krei ejon por la uzanto.
-->

<Centro>
<Tablo>
    <Tr>
        <Td>Eja Nomo:</Td>
        <Td><Enigo Tipo="Teksto" Nomo="SiteName" Identigaĵo="SiteName" /></Td>
    </Tr>
    <Tr>
        <Td Colspan="2">
            <Enigo Tipo="#Submeti?i" Identigaĵo="CreateSiteButton" Valoro="Krei la Ejon" />
        </Td>
    </Tr>
</Tablo>
</Centro>

<Skribo Src="../Kromsoftvaroj/jquery-1.11.0.Min.Js"></Skribo>

<Skribo>
Var CreateSiteLogicContainer = {

    CreateSiteData: {
            "Parametroj": {
                __Metadata: { "Tipo": "SP.WebInfoCreationInformation" },
                Url: "Paultest1",
                Titolo: "Paultest1",
                Priskribo: "Ripozo-kreita #aranea?o de Paul!",
                Lingvo: 1033,
                WebTemplate: "Sts",
                UseUniquePermissions: Falsa
            }
    },

    CreateSite: Funkcio () {

        JQuery.Subteno.Cors = Vera;

        CreateSiteLogicContainer.CreateSiteData.Parametroj.Url = $("#SiteName").Val();
        
        $.Ajax({
            Url: "Https://Bigapplesharepoint.Sharepoint.Com/NBAIADev/_api/#aranea?o/webinfos/aldonas",
            Metodo: "#PO?TO",

            Titoloj: {
                "Akcepti": "Apliko/json; Odata=verbose",
                "Kontenta-tipo": "Apliko/json;Odata=verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            Datumoj: JSON.Stringify(CreateSiteLogicContainer.CreateSiteData),

            Sukceso: Funkcio () { Atentigo("Sukceso"); },
            Eraro: Funkcio () { Atentigo("Eraro"); }

        });
    },

    WireUpForm: Funkcio () {
        $("#CreateSiteButton").Klako(Funkcio () {
            Atentigo("Proksimume provi kaj krei la ejon.");
            CreateSiteLogicContainer.CreateSite();
        });
    }


}

CreateSiteLogicContainer.WireUpForm();

</Skribo>

Kiam sukcesa, Vi akiras JSONan saketon en respondo tiel:

image

miaj kernaj pensoj kaj lernadoj de #tio ?i inkluzivas:

  • #?I tiu #alproksimi?o uzoj jQuery.  En mia kazo, Mia jQuery biblioteko estas #trovi?i en ??./Kromsoftvaroj.?  Vi??L deziras #?an?i tion indiki al via preferata JQa loko.
  • Vi povas kopii kaj almeti tiun tutan ereton en Kontenta Redaktora #Aranea?o Parto sur #pa?o kaj ?i devus labori nuran monpunon.  Vi??L deziras #?an?i la finan punkton de la APIa voko kaj faro certe vi referencas JQ #?uste.
  • La URL estas relativa al via API?? Endpoint.  En mia kazo, ?i?? Kreanta sub-ejoj sub https://bigapplesharepoint.com
  • Vi surmetas?? Bezono provizi kontentan-longeco. Kelkaj blogaj #po?to kaj MSDNa dokumento implicas ke vi fari, Sed okazita por mi #a?tomate, Kiu mi supozas estas estanta pritraktita de la $.Ajax vokas ?in mem.
  • #?I tiu linio estas postulita por eviti ??Orbidden?? Respondo: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Estas aliaj vojoj fari ?in, Sed #tio ?i estas #sufi?e bela.  Mi perdis la ligon al blogo kiu provizis #?i tiu mallongirejon.  H/T al vi, Mistera bloganto!

Bona fortuno kaj esperi #tio ?i helpas iun ekstere.

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin

Rapide kaj Simpla: SharePoint RIPOZO Vokas Nurajn Revenojn 100 Rekordoj

I??E estita laboranta sur publika #tega?o retejo por mia SharePoint praktiko #?i tie je Nov-Jorko Kaj ?i uzas multa JavaScript kaj RIPOZAJ vokoj montri enhavon.

Dum #?eftendenca evoluado, Mi kreas malgrandan dataset kun nura 10 #A? do disputoj en #la?menda listo kaj mia RIPOZO vokas #?iu tirita de tie.  Unufoje mi ekfrapis supre la liston havi kelkaj cent disputoj de datumo elprovi por anticipita kreskon, Mi trovis ke mi estis akiranta #?uste 100 Disputoj revenis reen sur miaj RIPOZAJ vokoj.

#Tio ?i estas tre simpla afero trakti.  En mia kazo (Kaj mi kredas en plejpartoj de kazoj), La #defa?lta RIPOZAJ vokoj al SharePoint (Kaj eble kiel industria normo?) Reveno 100 Disputoj.  Reveni pli da ol la nerepago, Uzi la $pintan parametron sur via voko, Kiel je:

GETaj /Enrigardoj Dev/_api/#aranea?o/listoj/GetByTitle(‘MockBlog')/Eroj?$Elektita=#IDENTIGA?O,Titolo,Kategoria/Titolo,Blogo_x0020_#A?toro/Titolo,DatePublished,BlogSummary&$Vastigi=Blogon_x0020_#A?toro,Kategorioj&$Filtrilo=&$#?Apeli=9999

Mi elektis 9999 En #?i tiu kazo pro tio ke mi scias ke kreskiga-#sa?a, Tie gajnita?? Esti pli da ol 200 #A? do disputoj aldonis #?i tiu liston en jaro.  Se ?i #fari?i malgracia, Ni povas efektivigi kelkaj paging malsupren la vojo.

</Fino>

undefinedAboni al mia blogo.

Sekvi min sur Pepi ĉe http://www.twitter.com/pagalvin