Månadsarkiv: Februari 2014

Hur du anger människor som en sökomfattning / Använda SharePoint-innehållskälla 2013 REST API

Jag hade anledning att arbeta med SharePoint 2013 Sök-API via resten för första gången. Jag ville söka efter personer, inte dokument. Nyckeln för att lära sig här är att anger du innehåll källor via dess GUID (eller åtminstone i detta fall). Följande jQuery utdrag visar hur:

    loadExpertsAsync: funktionen() {

        jQuery.support.cors = sant;

        $.Ajax({
            URL: Detta.CreateFullApiUrl() +
                "?querytext = "portaler"&SourceId = "b09a7990-05ea-4af9-81ef-edfab16c4e31"" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Färdigheter,AboutMe,Intressen,Yrkestitel,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl "" +
                "&ROWLIMIT = 99",
            metoden: "FÅ",
            headers: { "Acceptera": "Application/json; OData = verbose" },
            cache: falskt,
            framgång: funktionen (resultat) {

I mitt fall, Jag kör API mot SharePoint online. Att få GUID, Jag följde stegen:

  1. Komma åt SharePoint admin center
  2. Välj "Sök" från den vänstra navigeringen
  3. Välj hantera"resultatet källor"
  4. Välj "Lokalbefolkningen resultat"
  5. Titta på Webbadressen.

Min URL såg något liknande:

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

Parametern sourceid är vad arbetat för jag.

(Jag förstår att målentiteten kan faktiskt vara ett slags permanent sak med SP, men jag ska alltid kontrollera ändå 🙂 ).

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Exempel SharePoint resten samtal

Här är en uppsättning prov resten samtal som fungerar för mig och kan hjälpa dig också. Som av 02/2014, there are two examples 🙂

  1. Referera till en kolumn med blanksteg i namnet
  2. Referens en Multi-Välj kolumn
  3. Människor söka via resten

 

Jag lägger till detta som tiden går.

Här är några användbara bläck som jag har hittat samt:

Referera till en kolumn med blanksteg i namnet

Jag skapa en anpassad lista med en kolumn som heter "Blog författare" (utrymmet mellan blogg och författare).

$select att referera till kolumnen är:

image

Helt enkelt ersätta utrymmet med "_x0020_". Vi ser _x0020_ i många exempel över internets och resten är inte annorlunda.

Om du inte gör som, Du kan få ett felmeddelande liknande detta:

Uttrycket “Blogg författare” är inte giltig.

Lätt nog.

Referens en Multi-Välj uppslagskolumn

Ställ in:

  1. Skapa en anpassad lista som heter kategorier.
  2. Lägga till vissa kategorier. Jag la kategorier thusly:image
  3. Skapa en anpassad lista som kallas MockBlog och lägga till kategorier som en Multi-Välj lista kolumn (eller webbplatskolumn om det är hur du slår).

Lägga till vissa objekt i listan Mockblog och du är redo.

En Ajax stil samtal med hjälp av jQuery kommer att se ut så här:

serverUrl  = "/_api/web/listor/GetByTitle("MockBlog")/objekt" +
             "?$Välj = Title,Kategorier/titel,Blog_x0020_Author/titel" + 
             "&$Expandera = Blog_x0020_Author,Kategorier";

Vi säger SharePoint "ge mig titeln för alla kategorier (Kategorier/titel). Få de faktiska värdena för Avdelning genom $Expanderaning listan Kategorier." (Min vilsam omskriva är nog ganska lös, men detta hur jag tolkar det).

Om du gör detta via JavaScript och använder spelman titta på utdata, du får något sådant i gengäld:

 

image

(Ovanstående är en JSON objekt)

Människor söka via resten

Jag bloggade om detta separat. Viktiga är att ange en sourceid parameter vars värde är GUID för lokalbefolkningen innehållskällan. (Innehållskällor brukade kallas omfattningar och det är min-oh-my så hårt att inte kalla allt ett scope för mig!).

Läs mer om det här: http://www.mstechblogs.com/paul/?p=10385

 

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Snabb och enkel: Skapa en SharePoint-webbplats med resten

Det finns en hel del resurser runt som visar hur man gör detta, men jag kunde inte hitta en omfattande gå till länk, så här är vi.

Du kan skapa en SharePoint-webbplats med hjälp av vila API.  Här är en fullt bakade exempel:

<!--
    SiteRequestForm.html: Samla in information och skapa en webbplats för användaren.
-->

<Center>
<tabell>
    <TR>
        <TD>Webbplatsens namn:</TD>
        <TD><input typ= "text" Namn= "Platsnamn" ID= "Platsnamn" /></TD>
    </TR>
    <TR>
        <TD ColSpan= "2">
            <input typ= "Skicka" ID= "CreateSiteButton" värde= "Skapa webbplatsen" />
        </TD>
    </TR>
</tabell>
</Center>

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

<skript>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametrar": {
                __metadata: { "typ": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Avdelning: "Paultest1",
                Beskrivning: "Vila-skapad webb av Paul!",
                Språk: 1033,
                Webbmallen: "sts",
                UseUniquePermissions: falskt
            }
    },

    createSite: funktionen () {

        jQuery.support.cors = sant;

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

            headers: {
                "Acceptera": "application/json; OData = verbose",
                "content-type": "application/json;OData = verbose",
                "X-RequestDigest": $(#__REQUESTDIGEST"").val()
            },

            data: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            framgång: funktionen () { Alert("framgång"); },
            fel: funktionen () { Alert("fel"); }

        });
    },

    wireUpForm: funktionen () {
        $("#CreateSiteButton").Klicka på(funktionen () {
            Alert("Om att försöka skapa webbplatsen.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skript>

När framgångsrika, du får ett JSON paket som svar så här:

image

Mina viktiga tankar och lärdomar från detta:

  • Denna strategi använder jQuery.  I mitt fall, min jQuery biblioteket ligger i ".../ plugins. "  Vill du ändra som att peka till din favorite JQ-läge.
  • Du kan kopiera och klistra in det hela utdraget i en Innehållsredigeraren på en sida och det bör fungera alldeles utmärkt.  Du vill ändra slutpunkten för API-anrop och se till att du referera JQ korrekt.
  • Webbadressen är i förhållande till din API slutpunkt.  I mitt fall, Det skapar underwebbplatser under https://bigapplesharepoint.com
  • Du behöver inte ge ett innehåll-längd. Några blogginlägg och MSDN dokument innebär att du gör, men hände mig automatiskt, som jag antar sköts av $.ajax appellen sig själv.
  • Denna linje är krävs för att undvika en "förbjuden" svar: "X-RequestDigest": $(#__REQUESTDIGEST"").val().  Det finns andra sätt att göra det, men det är ganska trevligt.  Jag har tappat länken till blogg som denna genväg.  H/T till dig, mystiska blogger!

Lycka till och hoppas att detta hjälper någon.

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Övervinna irriterande Problem med relativa URL-adresser i SharePoint Quick Launch

Jag ville lägga till en länk till Snabbstart navigeringen häromdagen och SharePoint berättade:

image

Ren textversion av som är:

Kontrollera att Webbadressen är giltig och börjar med antingen ett giltigt tecken (ett nummertecken (#) eller snedstreck (/)) eller ett giltigt protokoll som stöds (till exempel, "http://’, ' https://’, "filen://’, "ftp://’, "mailto:’, "nyheter:’).

"Blech och pox!"Jag sa.

En lösning på detta är att använda JavaScript för att hitta en känd länk i den snabb sjösätta och åsidosätta sitt beteende.

Att testa detta, lägga till en ny länk på webbplatsen test thusly:

image

Jag använde jQuery. Att lösa det, få lite JavaScript och jQuery till sidan med hjälp av din favorit teknik och med en kodrad som denna:

 

$(dokument).redo( funktionen () {

    $("en:innehåller("Test URL ersättning")").Klicka på(funktionen () { Alert("ändrade klicka beteende!"); återvändande falskt;});

});

Och Bob är din farbror.

JQuery väljaren finner varje <en> -tagg som har "Test URL ersättning" i namnet. Du kanske vill hitta-tune som beroende på din länk och sådant.

.click(funktionen() åsidosätter vad SharePoint skulle ha gjort när användaren klickar på. Se till att du "return false" annars det kommer att göra dina grejer och sedan försöka href saken alltför, vilket är nästan säkert inte ditt mål.

Detta gjordes och test i en SharePoint online-miljö men bör fungera bra i 2010 och tidigare alltför.

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Snabb och enkel: SharePoint resten kallar endast returnerar 100 Poster

Jag har jobbat på en offentlig inför webbplats för min SharePoint praktik här i New York och en massa JavaScript och resten samtal för att visa innehåll.

Under stambanan utveckling, Jag skapa en liten datamängd med bara 10 eller så rader i en anpassad lista och min resten uppmanar alla drog därifrån.  En gång jag stötte upp listan att ha några hundra rader med data för att testa för förväntad tillväxt, Jag tyckte att jag var får exakt 100 rader som returneras tillbaka på mina övriga samtal.

Detta är en mycket enkel sak att adress.  I mitt fall (och jag tror i de flesta fall), standard resten samtal till SharePoint (och eventuellt som en branschstandard?) återvändande 100 rader.  Tillbaka mer än standard, Använd parametern $top på ditt samtal, som i:

FÅ /Insights Dev/_api/web/lists/GetByTitle("MockBlog")/objekt?$Välj = ID,Avdelning,Kategorier/titel,Blog_x0020_Author/titel,DatePublished,BlogSummary&$Expandera = Blog_x0020_Author,Kategorier&$filter =&$toppen = 9999

Jag plockade 9999 i detta fall eftersom jag vet att growth-wise, Det kommer inte finnas mer än 200 eller så rader läggs till i listan under ett år.  Om det blir otymplig, Vi kan genomföra några kalla på vägen.

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Snabb och enkel: Lösa "Ogiltig URL-Parameter” problemet med UpdateListItems i lists.asmx

När du arbetar med UpdateListItems via lists.asmx, Det är lätt att generera fel:

Ogiltigt URL-Parameter.

Den URL försynt innehåller ett ogiltigt kommando eller värde. Kontrollera URL: igen.

Du kan få detta fel när du glömmer att ta ID i den listan över fält att uppdatera.  Detta, som många av dessa SP webbtjänster, är lite bakvända eftersom du behöver inkludera ID i attributet ID för den <Metoden> element.  Och du inte uppdateras ID och förmodligen aldrig vill i första hand.

Denna SOAP-kuvertet fungerar:

<soapenv:Kuvert xmlns:soapenv ="http://schemas.xmlsoap.org/SOAP/Envelope/ ">
  <soapenv:Organ>                      
    <UpdateListItems xmlns ="http://schemas.microsoft.com/SharePoint/SOAP/ ">                     
      <Listnamn>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</Listnamn>                     
        <uppdateringar>                     
         <Batch VidFel ="Fortsätt">
          <Metod-ID ="1" CMD ="Update">
            <Fältet Namn ="CooperativeLock">låst!</Fältet>
            <Fältet Namn ="ID">1</Fältet>
          </Metoden>
        </Batch>                     
        </uppdateringar>                
      </UpdateListItems>             
  </soapenv:Organ>         
</soapenv:Kuvert>

Om du tar bort ID-fältreferens så får du den irriterer "Ogiltiga URL-parametern"-meddelandet.

</slutet>

undefinedPrenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin