Kateqoriya Arxivləri: SharePoint Web Services

Axtarış sahəsi kimi insanlar daxil etmək üçün necə / Content Source istifadə SharePoint 2013 REST 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: funksiyası() {

        jQuery.support.cors = doğru;

        $.ajax({
            url: bu.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",
            üsul: "GET",
            headers: { "Accept": "application/json; odata=verbose" },
            cache: saxta,
            success: funksiyası (nəticə) {

Mənə gəldikdə isə, 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 🙂 ).

</son>

undefinedBlog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Lists.asmx, GetListItems və Qovluqlar

I SharePoint hissəsi kimi göstərilən list.asmx web service ətrafında bu gün kimsə üçün bir araşdırma edirdi 2010 (və əvvəlki).  O, kök qovluq da siyahıda əldə edə bilər (alt qovluq adları daxil), lakin alt klasörler maddələri ala bilmədi.  Mən bəzi internets ətrafında axtarır idi və bu, təəccüblü ümumi sual.  Hələ, Mən sadə suala yaxşı cavab ala bilmədi, "Mən qovluq bilirsinizsə, necə qovluqdakı öğeleri almaq yoxdur?"  Insafən, Mən bir müddət öz Bu anlamaq istəyirdilər etdik çünki mən bütün ağır cəhd etməyib təbəssüm.

Bu qədər qurmaq üçün, Mən "Blogging Ssenari" və "Alt qovluqları ilə Xüsusi siyahısı" adlı xüsusi siyahı adlı saytı yaradılmışdır.  Mən sonra adına qovluq yaradıldı:

  • Il 2005
  • Il 2006
  • Il 2007

Mən qovluğu "2006" bir neçə maddələri əlavə edib.  Bu kimi görünür:

image

Mənim dostum C # kodu yazı deyil Java istifadə etmir, belə SOAP zərflərin o, həqiqətən lazım idi.  Ki, əldə etmək üçün, Mən jQuery bir az yazırdı və sonra faktiki HTTP söhbət almaq üçün skripkaçalan istifadə.

Burada müvafiq jQuery var (Siz yapışdırıb / kopyalamak istediğiniz əgər mən aşağıdakı kodu aşağı kopyalanan):

image

Onlar ilk düyməsini həm daxildir <queryOptions> və <QueryOptions> node.  İkinci əsas ki, <Qovluq> node olan müştəri çıxışı üçün bir URL deyil.

Bu almaq üçün başqa yolları ola bilər, jQuery istifadə edərkən, lakin bu mənim üçün yaxşı işləmişdir.

Burada yuxarıda üçün SOAP zərflərin edir:

<soapenv:Envelope xmlns:soapenv =’http://schemas.xmlsoap.org / sabun / zərf /’>                
  <soapenv:Orqan>
    <GetListItems xmlns =’
http://schemas.microsoft.com / SharePoint / sabun /’>
      <Yarpaqlı>Alt Folders xüsusi siyahısı</Yarpaqlı>
      <viewFields>  
        <ViewFields>
          <FieldRef Adı = 'Başlıq’ />
          <FieldRef Adı = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <Qovluq>
http://demoserver1/Blogging Ssenari / siyahıları / Alt Folders / il 2006-cı ilə Xüsusi siyahısı</Qovluq>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:Orqan>
</soapenv:Zərf>

Bu ətrafında nümunələri və müzakirə bir çox mənə lazım idi ki, iman gətirib <QueryOptions> və qovluq adı daxil.  Mənim üçün, Mən həm paketi daxili lazımdır <queryOptions> habelə üçün tam ixtisaslı URL daxil <Qovluq> node.

Burada jQuery AJAX quraşdırma var:

$(sənəd).hazır(funksiyası() {
       soapEnv = oldu
           "<soapenv:Envelope xmlns:soapenv =’http://schemas.xmlsoap.org / sabun / zərf /’> \
               <soapenv:Orqan> \
                    <GetListItems xmlns =’http://schemas.microsoft.com / SharePoint / sabun /’> \
                       <Yarpaqlı>Alt Folders xüsusi siyahısı</Yarpaqlı> \
                       <viewFields> \
                           <ViewFields> \
                              <FieldRef Adı = 'Başlıq’ /> \
                              <FieldRef Adı = 'EncodedAbsUrl’ /> \
                          </ViewFields> \
                       </viewFields> \
                       <queryOptions> \
                         <QueryOptions> \
                           <Qovluq>http://demoserver1/Blogging Ssenari / siyahıları / Alt Folders / il 2006-cı ilə Xüsusi siyahısı</Qovluq> \
                         </QueryOptions> \
                       </queryOptions> \
                   </GetListItems> \
               </soapenv:Orqan> \
           </soapenv:Zərf>";

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin

Lists.asmx, GetList və "Dəyər null ola bilməz”

Mən bu gün aşkar ki GetList() üsulu lists.asmx web service çox diqqətlə çağrılmasını və ya istisna "null ola bilməz Dəyər" bir sirli atmaq üçün meylli deyil (və fərz oldu ki, siz hətta pis generic səhv baş beledir keçmiş əldə edə bilərsiniz, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ atıldı. ")  Xüsusi, Mən sizə GetList üsulu ilə prefiks hər cür təmin edə bilməz ki.  Aşağıdakı jQuery parçası, point göstərir:

image

Bunu edin, web xidməti üzrə "Dəyər null ola bilməz" ilə cavab skripkaçalan-HTTP transcript təmin:

<?xml version = "1.0" encoding="utf-8"?>
  <sabun:Zərf
     xmlns:sabun ="
http://schemas.xmlsoap.org / sabun / zərf /"    
     xmlns:XSI = "
http://www.w3.org/2001/XMLSchema-instance"
     xmlns:XSD ="
http://www.w3.org/2001/XMLSchema">

  <sabun:Orqan>
    <sabun:Günah>
      <faultcode>sabun:Server</faultcode>
      <faultstring>
        Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ atıldı.
      </faultstring>
      <detal>
        <səhv string xmlns ="
http://schemas.microsoft.com / SharePoint / sabun /">
Dəyər null ola bilməz.
        </errorstring>
      </detal>
    </sabun:Günah>
  </sabun:Orqan>
</sabun:Zərf>

Əlbəttə, yəqin ki, öz ki, "S0" prefiksi əlavə olmaz, lakin bəzi alətlər bunu meylli (Eclipse kimi).

Bu, bütün daha qarışıqdır / digər üsullarla önek dözmək çünki sinir bozucu.  Məsələn, bu GetListCollection bu prefixed edilmişdir əgər metodu ağla sığmaz, hətta "xyzzy" kimi cəfəngiyat önekleriyle:

image

Bu lists.asmx ilə kifayət qədər ortaq görünür "dəyər null ola bilməz" Beləliklə, ümid edirəm bu gələcəkdə kimsə kömək edəcək.

</son>

Blog abunə.

Da Twitter məni izləyin http://www.twitter.com/pagalvin