Архиви на категоријата: SharePoint Веб Услуги

Како да одредите Луѓе како пребарување Опсег / Содржина Извор со употреба на Sharepoint 2013 ОДМОР API

I had reason to work with the SharePoint 2013 Search API via REST for the first time. I wanted to search for people, not documents. The key learning here is that you specify content sources via its GUID (or at least in this case). The following jQuery snippet shows how:

    loadExpertsAsync: функција() {

        jQuery.support.cors = вистина;

        $.ajax({
            рачно: овој.CreateFullApiUrl() +
                "?querytext='portals'&sourceid='b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Skills,AboutMe,Interests,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit=99",
            метод: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            cache: лажни,
            success: функција (резултира) {

Во мојот случај, I’m running the API against SharePoint online. To get the GUID, I followed these steps:

  1. Access the SharePoint admin center
  2. Select “search” from the left hand navigation
  3. Select “Manage Result Sources”
  4. Select “Local People Results”
  5. Look at the URL.

My URL looked something like:

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

The sourceid parameter is what worked for me.

(I understand that the sourceid may actually be a sort of permanent thing with SP, but I’ll always check anyway 🙂 ).

</крајот>

undefinedДа се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Lists.asmx, GetListItems и директориуми

Правев некои истражувања за некој денес целиот веб list.asmx услуги обезбедени како дел од SharePoint 2010 (и порано).  Таа беше во можност да се добие листа предмети на папка (вклучувајќи ги имињата на под-папки), но не можеше да се добие ставки во под-папки.  Јас не некои бараат околу за на Internets и тоа е изненадувачки заеднички прашање.  Сепак,, Не можев да се добие добар одговор на едноставно прашање, "Ако знам дека папката, Како можам да добијам на ставки во папка?"  Да бидам искрен, Не се обидов сето тоа тешко, бидејќи јас сум сакал да дознаам ова на моето за некое време Насмевка.

Да го поставите на овој, Јас создаде сајт наречен "Блогирање сценарија" и обичај листа наречена "Сопствен Листа со под директориуми".  Јас тогаш создаде директориуми именувани:

  • Година 2005
  • Година 2006
  • Година 2007

Јас додадов неколку предмети во папката "Година 2006".  Ова е она што изгледа како:

image

Мојот пријател не е пишување C # кодот туку со употреба на Java, па SOAP пликото беше она што таа навистина потребно.  Да се ​​добие дека, Напишав малку на jQuery и потоа се користи свирач да го добиете вистинскиот за HTTP разговор.

Тука е релевантен jQuery (Јас копирани го кодот долу, ако сакате да направите копирај / вметни):

image

Тие прво Клучот е да го вклучите двете <queryOptions> и <QueryOptions> јазол.  Вториот клучен е дека <Папка> јазол е URL-то на кој клиентот има пристап.

Може да има други начини да се добие оваа, но тоа добро работеа за мене, кога со користење на веб.

Тука е SOAP плико за горенаведените:

<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org / сапун / плик /’>                
  <soapenv:Тело>
    <GetListItems xmlns =’
HTTP://schemas.microsoft.com / SharePoint / сапун /’>
      <listName>Прилагодено Листа со под директориуми</listName>
      <viewFields>  
        <ViewFields>
          <FieldRef Име = "Наслов’ />
          <FieldRef Име = "EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Папка>
HTTP://demoserver1/Blogging Сценарија / листите / прилагодување по желба Листа со под директориуми / 2006 година</Папка>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Тело>
</soapenv:Плик>

А многу примери и дискусија околу ова ме натера да верувам дека сè што ми треба е <QueryOptions> и наведете име за папката.  За мене, Ми треба да и ставете го во <queryOptions> како и да определи целосно квалификувани URL за <Папка> јазол.

Тука е jQuery AJAX подесување:

$(документ).подготвени(функција() {
       var soapEnv =
           "<soapenv:Плик xmlns:soapenv =’HTTP://schemas.xmlsoap.org / сапун / плик /’> \
               <soapenv:Тело> \
                    <GetListItems xmlns =’HTTP://schemas.microsoft.com / SharePoint / сапун /’> \
                       <listName>Прилагодено Листа со под директориуми</listName> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Име = "Наслов’ /> \
                              <FieldRef Име = "EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Папка>http://demoserver1/Blogging Сценарија / листите / прилагодување по желба Листа со под директориуми / 2006 година</Папка> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Тело> \
           </soapenv:Плик>";

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin

Lists.asmx, GetList и "Вредноста не може да биде нула”

Ги открив денес дека GetList() метод во lists.asmx веб сервис треба да се викаат многу внимателно или тоа е склони да се фрли една мистериозна "Вредноста неможе да биде" исклучок (и тоа е под претпоставка дека може да добие минато дури и полошо генерички порака за грешка, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ беше фрлена. ")  Специјално, Сфатив дека не можете да обезбеди било кој вид на префиксот на GetList метод.  Следниве jQuery програмка илустрира поентата:

image

Ако го направите тоа, на веб сервисот одговара со "Вредноста не може да биде нула", како на овој свирач-предвидени HTTP препис:

<?XML верзија = "1,0" кодирање = "UTF-8"?>
  <сапун:Плик
     xmlns:сапун ="
HTTP://schemas.xmlsoap.org / сапун / плик /"    
     xmlns:XSi = "
HTTP://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
HTTP://www.w3.org/2001/XMLSchema">

  <сапун:Тело>
    <сапун:Грешка>
      <faultcode>сапун:Сервер</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ беше фрлена.
      </faultstring>
      <детали>
        <errorstring xmlns ="
HTTP://schemas.microsoft.com / SharePoint / сапун /">
Вредност не може да биде нула.
        </errorstring>
      </детали>
    </сапун:Грешка>
  </сапун:Тело>
</сапун:Плик>

Се разбира, најверојатно не би додал дека "s0" префикс на свој, но некои алатки се склони да го направи тоа (како Eclipse).

Ова е сè повеќе и повеќе збунувачки / фрустрирачки, бидејќи други методи толерира префикси.  На пример, на GetListCollection метод не му пречи, ако тоа е се со префикс, дури и со глупости префикси како "xyzzy":

image

Овој "вредност не може да биде нула" се чини доста заедничко со lists.asmx па се надевам дека ова ќе помогне на некој во иднина.

</крајот>

Да се ​​претплатите на мојот блог.

Следете ме на Twitter во http://www.twitter.com/pagalvin