Kategoria: Archiwum: Usługi sieci Web programu SharePoint

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

Lists.asmx, GetListItems i folderów

Robię niektórych badań dla kogoś dziś około list.asmx usługi sieci web w ramach programu SharePoint 2010 (i wcześniejszych).  Okręt był w stanie uzyskać elementów listy w głównym folderze (łącznie nazw podfolderów), jednak nie można pobrać elementy w podfolderach.  I did, niektóre patrząc sieciach internetowych i jest zaskakująco często pytanie.  Jeszcze, Nie mogłam dobrej odpowiedzi na proste pytanie, "Jeśli wiadomo folder, jak uzyskać elementy w folderze?”  Szczerze, I spróbuj nie wszystkie twarde ponieważ wcześniej chciałem do rysunku, to jeden z samodzielne na chwilę Uśmiech.

Aby skonfigurować, Utworzony witrynę o nazwie "Blogi scenariuszy" i niestandardowej listy o nazwie "Niestandardowe listy z podfoldery".  Następnie utworzony foldery o nazwie:

  • Rok 2005
  • Rok 2006
  • Rok 2007

Po dodaniu kilku elementów do folderu "Rok 2006".  Jest to, jak ona wygląda:

image

Mój przyjaciel nie pisząc kod C#, ale raczej przy użyciu języka Java, tak więc koperty SOAP została co tak naprawdę potrzebuje.  Aby uzyskać, Napisał nieco jQuery i następnie używana skrzypek, aby uzyskać notatkom HTTP.

Oto odpowiednich jQuery (Skopiowano kod w dół poniżej jeśli chcesz kopiowania/wklejania):

image

Ich pierwszy klucz ma zawierać zarówno <queryOptions> i <QueryOptions> węzeł.  Drugi klucz jest <Folderu> węzeł jest to adres URL, do którego klient ma dostęp.

Mogą istnieć inne sposoby żeby to, ale to pracował również dla mnie podczas używania jQuery.

Oto koperty SOAP dla powyższego:

<soapenv:Koperta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’>                
  <soapenv:Organ>
    <GetListItems xmlns =’
http://schemas.Microsoft.com/SharePoint/SOAP/’>
      <listName>Lista niestandardowa z podfoldery</listName>
      <viewFields>  
        <ViewFields>
          <Nazwa FieldRef =' Tytuł’ />
          <FieldRef Name = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Folderu>
http://demoserver1/blogi Lista scenariuszy/list/niestandardowa z Sub folderów na rok 2006</Folderu>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Organ>
</soapenv:Koperta>

Wiele przykładów i dyskusji wokół to doprowadziło me by sądzić, że wszystko, co potrzebne było <QueryOptions> i określ nazwę folderu.  Dla mnie, I potrzeby zarówno opakować go wewnątrz <queryOptions> jak określić pełni kwalifikowany adres URL dla <Folderu> węzeł.

Oto instalacji AJAX jQuery:

$(dokument).gotowe(Funkcja() {
       var soapEnv =
           "<soapenv:Koperta xmlns:soapenv =’http://schemas.xmlsoap.org/soap/envelope/’> \
               <soapenv:Organ> \
                    <GetListItems xmlns =’http://schemas.Microsoft.com/SharePoint/SOAP/’> \
                       <listName>Lista niestandardowa z podfoldery</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <Nazwa FieldRef =' Tytuł’ /> \
                              <FieldRef Name = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Folderu>http://demoserver1/Blogging Lista scenariuszy/list/niestandardowa z Sub folderów na rok 2006</Folderu> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Organ> \
           </soapenv:Koperta>";

</koniec>

Subskrybowanie mój blog.

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

Lists.asmx, GetList i "wartość nie może być zerowy”

Odkryłem dzisiaj, GetList() Metoda lists.asmx usługi sieci Web ma bardzo starannie nazywane lub jest podatna na rzut tajemniczy wyjątek "Wartość nie może być zerowy" (i że zakładając, że można uzyskać w przeszłości jeszcze gorsza komunikat Błąd rodzajowy, "Wyjątek typu ' Microsoft.SharePoint.SoapServer.SoapServerException’ zgłoszono wyjątek.")  W szczególności, I stwierdzone, że nie może dostarczyć wszelkiego rodzaju prefiks na metodzie GetList.  Poniższy urywek jQuery ilustruje punktu:

image

Jeśli, Usługa sieci web odpowiada "Wartość nie może być zerowa" jak na to skrzypek-pod warunkiem transkrypcja HTTP:

<?wersja pliku XML = "1.0" Kodowanie = "utf-8"?>
  <mydło:Koperta
     xmlns:mydło ="
http://schemas.xmlsoap.org/soap/envelope/"    
     xmlns:xsi = "
http://www.w3.org/2001/XMLSchema-instance
     xmlns:xsd ="
http://www.w3.org/2001/XMLSchema">

  <mydło:Organ>
    <mydło:Usterka>
      <faultcode>mydło:Serwer</faultcode>
      <elementem faultString>
        Wyjątek typu ' Microsoft.SharePoint.SoapServer.SoapServerException’ zgłoszono wyjątek.
      </elementem faultString>
      <szczegóły>
        <ErrorString xmlns ="
http://schemas.Microsoft.com/SharePoint/SOAP/">
Wartość nie może być zerowy.
        </ErrorString>
      </szczegóły>
    </mydło:Usterka>
  </mydło:Organ>
</mydło:Koperta>

Oczywiście, prawdopodobnie nie dodasz tego prefiksu "s0" na własne, Jednak niektóre narzędzia są podatne na nie (Podobnie jak Eclipse).

Jest to tym bardziej skomplikowane / frustrujący, ponieważ inne metody tolerować prefiksów.  Na przykład, The GetListCollection Metoda nie przeszkadzało jeśli jest zostało poprzedzone, nawet z prefiksami bzdury, takich jak "xyzzy":

image

To "wartość nie może być zerowy" wydaje się dość wspólnej z lists.asmx tak miejmy nadzieję pomoże to ktoś się w przyszłości.

</koniec>

Subskrybowanie mój blog.

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