Månedlige Arkiver: Februar 2014

Slik angir du folk som et søkeomfang / Innholdskilde SharePoint 2013 REST API

Jeg hadde grunn til å arbeide med SharePoint 2013 Søke-API via resten for første gang. Jeg ønsket å søke etter personer, ikke dokumenter. Nøkkelen læring her er at angir du innholdskilder via sin GUID (eller minst i dette tilfellet). Følgende jQuery kodebiten viser hvordan:

    loadExpertsAsync: funksjonen() {

        jQuery.support.cors = sann;

        $.Ajax({
            URL-adresse: Dette.CreateFullApiUrl() +
                "?querytext = "portaler"&sourceid = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Ferdigheter,AboutMe,Interesser,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            metoden: "FÅ",
            overskrifter: { "Godta": "programmet/json; OData = detaljert" },
            cache: USANN,
            suksess: funksjonen (resultatet) {

I mitt tilfelle, Jeg kjører API mot SharePoint online. Få guiden, Jeg fulgte fremgangsmåten:

  1. Tilgang til Administrasjonssenter for SharePoint
  2. Velg "Søk" fra venstre side
  3. Velg «Behandle resultatet kilder»
  4. Velg "Lokalbefolkningen resultater"
  5. Se på nettadressen.

Webadressen min sett noe som:

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

Parameteren sourceid er hva arbeidet for meg.

(Jeg forstår at kilde-IDen kan faktisk være en slags permanent ting med SP, but I’ll always check anyway 🙂 ).

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Eksempel SharePoint resten samtaler

Her er et sett eksempel resten anrop som fungerer for meg og kan hjelpe deg også. Som av 02/2014, there are two examples 🙂

  1. Referere til en kolonne med mellomrom i navn
  2. Referere til en multi-velger kolonne
  3. Utføre et personsøk via resten

 

Jeg vil legge til dette som tiden går.

Her er noen nyttige blekkfarger jeg har funnet også:

Referere til en kolonne med mellomrom i navn

Jeg opprette en egendefinert liste med en kolonne kalt "Blogg forfatter" (mellomrom mellom bloggen og forfatter).

$select referanse kolonnen er:

image

Bare erstatte plassen med "_x0020_". Vi ser _x0020_ i mange eksempler på internets og resten er ikke annerledes.

Hvis du ikke gjør det, du er ansvarlig for å få en feilmelding som dette:

Uttrykket “Bloggforfatteren” er ikke gyldig.

Lett nok.

Referere til en multi-velger oppslagskolonne

Definere:

  1. Opprette en egendefinert liste navnet kategorier.
  2. Legg til noen kategorier. Jeg lagt kategorier thusly:image
  3. Opprette en egendefinert liste kalt MockBlog og legge til kategorier som en flervalgsliste kolonne (eller områdekolonne hvis det er hvordan du ruller).

Legge til noen elementer i listen Mockblog og du er klar.

En Ajax stil anrop ved hjelp jQuery vil se omtrent slik ut:

serverUrl  = (likhetstegn) "/_api/web/lister/GetByTitle('MockBlog')/elementer" +
             "?$Velg = tittel,Kategorier/tittel,Blog_x0020_Author/tittel" + 
             "&$utvide = Blog_x0020_Author,Kategorier";

Vi forteller SharePoint "gi meg tittelen for alle kategorier (Kategorier/tittel). Få de faktiske verdiene for Tittel ved $utvideing kategorilisten." (Min avslappende parafraser er trolig ganske løs, men dette hvordan jeg tolke det).

Hvis du gjør dette via JavaScript og bruker Fiddler for å se på utdataene, du får noe som dette tilbake:

 

image

(Ovenfor er en JSON objekt)

Utføre et personsøk via resten

Jeg blogged om dette separat. Nøkkelen er å angi en sourceid parameter som er guiden for lokalbefolkningen innholdskilden. (Innholdskilder som kalles omfang og det er min-oh-min så hardt å ikke kalle alt et område for meg!).

Les mer om det her: http://www.mstechblogs.com/paul/?p=10385

 

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Rask og enkel: Opprette et SharePoint-område ved hjelp av REST

Det er mange ressurser rundt som viser hvordan du gjør dette, men jeg kunne ikke finne en omfattende gå-til-kobling, så her er vi.

Du kan opprette et SharePoint-område ved hjelp av REST-API.  Her er et fullt bakt eksempel:

<!--
    SiteRequestForm.html: Samle informasjon og lage et nettsted for brukeren.
-->

<Center>
<tabell>
    <tr>
        <TD>Områdenavn:</TD>
        <TD><inngang type= "tekst" navn= "Områdenavn" ID= "Områdenavn" /></TD>
    </tr>
    <tr>
        <TD ColSpan= "2">
            <inngang type= "Send" ID= "CreateSiteButton" verdi= "Opprette webområdet" />
        </TD>
    </tr>
</tabell>
</Center>

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

<skriptet>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametere": {
                __metadata: { "type": "SP.WebInfoCreationInformation" },
                URL-adresse: "Paultest1",
                Tittel: "Paultest1",
                Beskrivelse: "resten opprettet web Paul!",
                Språk: 1033,
                WebTemplate: "m",
                UseUniquePermissions: USANN
            }
    },

    createSite: funksjonen () {

        jQuery.support.cors = sann;

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

            overskrifter: {
                "Godta": "program/json; OData = detaljert",
                "content-type": "program/json;OData = detaljert",
                «X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            data: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            suksess: funksjonen () { varsel("suksess"); },
            feil: funksjonen () { varsel("feil"); }

        });
    },

    wireUpForm: funksjonen () {
        $("#CreateSiteButton").Klikk(funksjonen () {
            varsel("Om å prøve og opprette området.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skriptet>

Når vellykket, du får en JSON pakke svar som dette:

image

Min nøkkel tanker og erfaringene fra dette inkluderer:

  • Denne fremgangsmåten bruker jQuery.  I mitt tilfelle, biblioteket jQuery ligger i ".../ plugins. "  Vil du endre å din favoritt JQ plasseringen.
  • Du kan kopiere og lime inn at hele kodebiten i en webdel for innholdsredigering på en side og det skal fungere helt fint.  Du vil endre endepunktet for API-kallet og sørge for at du refererer JQ riktig.
  • URL-adressen er knyttet til din API endepunkt.  I mitt tilfelle, det skaper sekundære områder under https://bigapplesharepoint.com
  • Du trenger ikke å gi en content-Lenght. Noen blogginnlegg og MSDN dokumentet innebærer at du gjør, men skjedde for meg automatisk, som jeg antar er håndteres av $.ajax samtalen selv.
  • Denne linjen er nødvendig for å unngå en "forbudt" svar: «X-RequestDigest": $("#__REQUESTDIGEST").Val().  Det finnes andre måter å gjøre det., men dette er ganske fin.  Jeg har mistet koblingen til bloggen som denne snarveien.  H/T deg, mystisk blogger!

Lykke til og håper dette hjelper noen.

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Overvinne irriterende Problem med Relative URL-adresser i Hurtigstart på SharePoint

Jeg ønsket å legge en link til hurtigstartlinjen navigasjon forleden og SharePoint fortalte:

image

Ren tekst-versjon som er:

Kontroller at URL-adressen er gyldig og begynner med enten et gyldig tegn (et nummertegn (#) eller skråstrek (/)) eller en gyldig støttet protokoll (for eksempel, ' http://’, ' https://’, ' fil://’, ' ftp://’, ' mailto:’, ' nyheter:’).

"Blech og pox!"Jeg sa.

En løsning på dette er å bruke JavaScript til å finne en kjent kobling i Hurtigstart og overstyre virkemåten.

Å teste dette, legge til en ny kobling til webområdet test thusly:

image

Jeg brukte jQuery. Du kan løse det., få noen JavaScript og jQuery på siden ved å bruke ditt favorittmetoden og med en linje med kode som dette:

 

$(dokumentet).klar( funksjonen () {

    $("en:inneholder("Test URL erstatning")").Klikk(funksjonen () { varsel("endrede Klikk virkemåte!"); avkastning USANN;});

});

Og Bob er din onkel.

JQuery velgeren finner alle <en> kode som har "Test URL erstatning" i navnet. Du kan finne-låt som avhengig av koblingen og slike.

Klikk(funksjonen() overstyrer hva SharePoint ville ha gjort når brukeren klikker. Sikre du "return false" eller ellers det vil gjøre ting og deretter prøve på href ting også, som er nesten helt sikkert ikke målet ditt.

Dette ble gjort og test i en SharePoint online-miljøet, men skal fungere godt i 2010 og tidligere for.

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Rask og enkel: SharePoint resten kaller bare returnerer 100 Poster

Jeg har jobbet på et offentlig mot webområde for min SharePoint praksis her i New York og den bruker mye JavaScript og resten kaller for å vise innhold.

Under hovedlinjen utvikling, Jeg lage en liten datasett med bare 10 eller så rader i en liste og min resten oppfordrer alle dro derfra.  Når jeg bumped opp listen har noen få hundre rader for å teste for forventet vekst, Jeg fant at jeg får nøyaktig 100 rader som returneres tilbake på mine resten samtaler.

Dette er en veldig enkel ting til adressen.  I mitt tilfelle (og jeg tror i de fleste tilfeller), standard resten samtaler til SharePoint (og muligens en industristandard?) avkastning 100 rader.  Å returnere mer enn standard, Bruk parameteren $top på ringer, som i:

FÅ /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/elementer?$Velg ID,Tittel,Kategorier/tittel,Blog_x0020_Author/tittel,DatePublished,BlogSummary&$utvide = Blog_x0020_Author,Kategorier&$filteret =&$topp = 9999

Jeg plukket 9999 i dette tilfellet siden jeg vet at growth-wise, det vil ikke være mer enn 200 eller så rader lagt til denne listen i ett år.  Hvis det blir ungainly, Vi kan implementere noen paginerer nedover veien.

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin

Rask og enkel: Løse "Ugyldig URL-Parameter” problemet med UpdateListItems i lists.asmx

Når du arbeider med UpdateListItems via lists.asmx, Det er lett å generere feilen:

Ugyldig URL-Parameter.

URL-adressen inneholder en ugyldig kommando eller verdi. Kontroller URL-adressen på nytt.

Du kan få denne feilmeldingen når du glemmer å inkludere ID i den listen skal oppdateres.  Dette, som mange av disse SP webtjenester, er litt counterintuitive siden du trenger å inkludere ID i ID-attributtet for den <Metoden> elementet.  Og du ikke oppdatert ID og trolig aldri vil i første omgang.

Denne SOAP-konvolutten fungerer:

<soapenv:Konvolutt xmlns:soapenv =' http://schemas.xmlsoap.org/SOAP/ENVELOPE/'>
  <soapenv:Kroppen>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <oppdateringer>                     
         <Batch OnError ="Fortsett">
          <Metoden ID ="1" CMD ="Oppdatering">
            <Navnet på feltet ="CooperativeLock">låst!</Feltet>
            <Navnet på feltet ="ID">1</Feltet>
          </Metoden>
        </Satsvis>                     
        </oppdateringer>                
      </UpdateListItems>             
  </soapenv:Kroppen>         
</soapenv:Konvolutt>

Hvis du fjerner ut ID feltreferansen så får du det sjenerende "Ugyldige webadresseparameter" beskjed.

</slutten>

undefinedAbonner på bloggen min.

Følg meg på Twitter på http://www.twitter.com/pagalvin