Kategorija Arhiv: OSTALO

HTTP 406 Napaka pri uporabi kotni $http.get proti SharePoint PREOSTALI končne točke

Posodobitev: Marc oglas ndersson poudariti to velik krpa od zavijati: http://blogs.Office.com/2014/08/13/JSON-Light-support-REST-SharePoint-API-Released/. To pojasnjuje veliko :).

Da se lahko najslabši naslov blog post Kdaj! Anyhoo.

Običajno delam vse moje prototipov proti primerek O365. Imam svoj osebni primer, tako da ni treba biti zaskrbljen zaradi vpliva nikomur. Kot prahi – ne pozabite kdaj pravimo izvajajo okoli virtualne stroje na naših prenosnih računalnikov z MAHOM – SQL Server, IIS, odločanju, Hyper-V vs. VMWare? Nekako...

Sem imel razvit app uporabo kotnega v tem okolju, ki pa, med drugim, to:

$http.Get(serverUrl)
.uspeh(Funkcija(podatkov, status, glave, config) {

var getLinksResponse = podatkov;

getLinksResponse.value.forEach(Funkcija(theResult) {

// in tako naprej in tako pena

To je ki dela šele lep v dveh različnih SharePoint online okoljih. Vendar, ko moj kolega je napovedati stopnje Cloudshare, bil je že na HTTP 406 Napaka (ki je prvič sem kdajkoli dobil tisti, tako... Bravo, zdi se mi). Nismo malo raziskav in opazil, da je glava "Accept" odštel. SharePoint online je bila popolnoma zadovoljna z:

Sprejeti: Uporaba/json

Vendar je cloudshare stopnje (ki je SP na prem, gostuje v virtualni strežnik) Hotel classic "odata = verbose" doda tudi:

Sprejeti: Uporaba/json;odata = verbose

Se določi, da, Dodali smo glave kot take:

var config = {glave: {
"Sprejeti": "uporaba/json;odata = verbose "
}
};

$http.Get(serverUrl,config)
.uspeh(Funkcija(podatkov, status, glave, config) {

var getLinksResponse = podatkov;

getLinksResponse.value.forEach(Funkcija(theResult) {

// in tako naprej in tako pena

Ki znebili na 406, vendar je tudi spremenila oblika odziva. Je bilo več... glej verbosly. (haha!) Več sprememb so bile zahtevane in tukaj je končni rezultat:

var config = {glave: {
"Sprejeti": "uporaba/json;odata = verbose "
}
};

$http.Get(serverUrl,config)
.uspeh(Funkcija(podatkov, status, glave, config) {

var getLinksResponse = podatkov;

getLinksResponse.d.Results.forEach(Funkcija(theResult) {

// in tako naprej in tako pena

To samo spremenila v a 30 minuto problem za nas, tako mi lucked. Upajmo, da nekdo najde, to je koristen.

</namen>

Kako določiti ljudi kot obseg iskanja / Vir vsebine z uporabo SharePoint 2013 POČITEK API

Sem imel razlog za delo s SharePointovim 2013 Iskanje API preko ostalo prvič. Hotela sem, da iskanje za ljudi, ne dokumente. Tipko učenje, tukaj je, da določite vire vsebine preko GUID (ali vsaj v tem primeru). Odlomek prikazuje ta jQuery kako:

    loadExpertsAsync: Funkcija() {

        jQuery.support.cors = True;

        $.Ajax({
            URL: to.CreateFullApiUrl() +
                "?querytext = "portalov"&ID = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Spretnosti,AboutMe,Interese,Delovno mesto,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&RowLimit = 99",
            metoda: "DOBILI",
            glave: { "Sprejeti": "Uporaba/json; odata = verbose" },
            predpomnilnika: FALSE,
            uspeh: Funkcija (rezultat) {

V mojem primeru, Tečem API proti SharePoint online. Da bi dobili GUID, Sledil sem te korake:

  1. Dostop do SharePoint admin center
  2. Izberite "iskanje" iz navigacije levico
  3. Izberite "upravljanje virov rezultat"
  4. Izberite »Lokalnih prebivalcev rezultati«
  5. Pogled na URL.

Moj URL pogledal nekaj podobnega:

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

ID parametra je kakšen obdelan navzlic.

(Razumem, da ID lahko dejansko nekakšno stalni stvar s SP, ampak vseeno bom vedno preverila 🙂 ).

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Primer SharePoint ostali klici

Tu je niz vzorec ostalo klicev, ki delajo za mene in lahko pomoč vi jasno tudi. Kot od 02/2014, there are two examples 🙂

  1. Sklic na stolpec s presledki v svojem imenu
  2. Referenčni multi-izberite stolpec
  3. Izvedite iskanje ljudi preko ostalo

 

Bom dodati, da to po nekem času.

Tukaj je nekaj koristnih črnila, sem našel tudi:

Sklic na stolpec s presledki v svojem imenu

I ustvarite seznam po meri z stolpec imenovan "Blog avtorja" (prostor med Blog in avtor).

$select sklicuje ta stolpec je:

image

Preprosto zamenjati prostor z "_x0020_". Vidimo _x0020_ v veliko primerov čez internets in ostalo se ne razlikuje.

Če ne naredite, ki, ste dobili sporočilo o napaki, kot je ta:

Izraz “Avtor blog” ni veljaven.

Enostavno dovolj.

Referenčni stolpec multi-izberite za iskanje

Nastavite:

  1. Ustvarite seznam po meri z imenom kategorije.
  2. Dodajte nekaj kategorij. Sem dodal kategorije thusly:image
  3. Ustvarite drug seznam po meri, ki se imenuje MockBlog in dodajte kategorije kot multi-izberite seznam stolpcev (ali stolpec mesta, če to je, kako ste roll).

Dodajanje nekaterih elementov na seznam Mockblog in ste pripravljeni.

Ajax slog klic z uporabo jQuery bo izgledala nekako takole:

serverUrl  = "/_api/web/seznami, GetByTitle("MockBlog")/elementi" +
             "?$Izberite naslov =,Kategorije/naslov,Blog_x0020_Author/naslov" + 
             "&$Razširite = Blog_x0020_Author,Kategorije";

Smo si pravi SharePoint "Daj mi naslov za vse kategorije (Kategorije/naslov). Dobili dejanske vrednosti za Naslov z $Razširiteing seznam kategorije." (Moj prijeten parafrazo je verjetno zelo ohlapno, ampak to kako sem to tolmačenje).

Če to delaš preko JavaScript in uporabo Violinista pogledati izhod, dobiš kaj takega v zameno:

 

image

(Zgoraj je predmeta JSON)

Izvedite iskanje ljudi preko ostalo

I blogged o tem posebej. Ključno je, da določite ID parametra, katerega vrednost je GUID vira vsebine domačini. (Vire vsebine, ki se uporablja za se imenuje obsegov in je my-oh-my ne tako težko poklicati vse področje zame!).

Preberite več o tem tukaj: http://www.mstechblogs.com/paul/?p=10385

 

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Hitro in enostavno: Ustvarite SharePointovo mesto z ostalo

Obstaja veliko virov okoli ki kažejo, kako to storiti, vendar nisem mogel najti povezavo obsežno go-do, Torej, tukaj smo.

Ustvarite SharePointovo mesto z uporabo programskega vmesnika REST.  Tukaj je primer popolnoma pečen:

<!--
    SiteRequestForm.html: Zbirajo informacije in ustvarite mesto za uporabnika.
-->

<Center>
<Tabela>
    <tr>
        <TD>Ime mesta:</TD>
        <TD><vnos vrsta= "besedilo" ime= "Imemesta" ID= "Imemesta" /></TD>
    </tr>
    <tr>
        <TD ColSpan= "2">
            <vnos vrsta= "submit" ID= "CreateSiteButton" vrednost= "Ustvarjanja mesta" />
        </TD>
    </tr>
</Tabela>
</Center>

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

<skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametri": {
                __metadata: { "tip": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Naslov: "Paultest1",
                Opis: "preostali ustvaril spletno z Paul!",
                Jezik: 1033,
                Spletne: "sts",
                UseUniquePermissions: FALSE
            }
    },

    createSite: Funkcija () {

        jQuery.support.cors = True;

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

            glave: {
                "Sprejeti": "uporaba/json; odata = verbose",
                "content-type": "uporaba/json;odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            podatkov: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            uspeh: Funkcija () { Opozorilo("uspeh"); },
            Napaka: Funkcija () { Opozorilo("napaka"); }

        });
    },

    wireUpForm: Funkcija () {
        $("#CreateSiteButton").kliknite(Funkcija () {
            Opozorilo(»Tem, da poskusite in ustvarjanja mesta.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skript>

Ko uspešno, dobiš JSON paket v odgovor takole:

image

Moj ključnih misli in learnings iz tega:

  • Ta pristop uporablja jQuery.  V mojem primeru, moj jQuery knjižnica se nahaja v ".../ plugins. "  Boste želeli spremeniti, da pokažete na vaš najljubši JQ namestitev.
  • Lahko kopirate in prilepite to je celo odlomek v spletni gradnik urejevalnika vsebine na strani ter to should opus šele lep.  Boste želeli, da spremenite končna točka API klic in preverite, ali se sklicujete JQ pravilno.
  • URL je glede na vaš API endpoint.  V mojem primeru, je ustvarjanje podmesta pod https://bigapplesharepoint.com
  • Vi ne potreba skrbeti dolžine vsebine. Nekaj blog delovnih mest in MSDN dokumenta pomeni, da vam, vendar se je zgodilo mi samodejno, ki predvidevam je ravna z $Ajax klica, sama.
  • Ta vrstica mora izogne "prepovedano" odziv: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  So drugi ways uganjati to, ampak to je zelo lepo.  So izgubili povezavo na blog, ki to bližnjico.  H/T vam, skrivnostni blogger!

Vso srečo in upanje to pomoč nekdo ven.

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin

Hitro in preprosto: SharePoint ostalo klic samo vrne 100 Zapisi

Sem delal na javno sooča spletno stran za moje SharePoint prakse tukaj v New York in ga uporablja veliko JavaScript in ostalo klicev prikažete vsebino.

Med razvojem kopno, Ustvariti majhne dataset s samo 10 ali tako vrstice v seznam po meri in moji ostali klici potegnil od tam.  Enkrat sem vrč seznam imeti nekaj sto vrstic podatkov, da test za pričakovano rast, Sem ugotovila, da je že točno 100 vrstic vrne nazaj na moje klice ostalo.

To je zelo preprosta stvar za naslov.  V mojem primeru (in menim, v večini primerov), privzeto ostali klici v SharePoint (in morebiti kot industrijski standard?) vrnitev 100 vrstice.  Vrniti več kot privzeto, uporabite $top parameter na vaš klic, kot v:

PRITI /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/elementi?$Izberite = ID,Naslov,Kategorije/naslov,Blog_x0020_Author/naslov,DatePublished,BlogSummary&$Razširite = Blog_x0020_Author,Kategorije&$filter =&$Top = 9999

Pobral sem 9999 v tem primeru, ker vem da growth-wise, ne bo več kot 200 ali tako vrstice dodati ta seznam v letu.  Če postane Neokretan, lahko izvajamo nekaj ostranjevalne po cesti.

</namen>

undefinedNaročite se na moj blog.

Sledite mi na Cvrkutati na http://www.twitter.com/pagalvin