શ્રેણી આર્કાઇવ્ઝ: 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({
            URL: .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, પરંતુ હું હંમેશા કોઈપણ તપાસ કરીશું 🙂 ).

</અંત>

undefinedમારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

Twitter પર મને ખાતે અનુસરો http://www.twitter.com/pagalvin

Lists.asmx, GetListItems અને ફોલ્ડર્સ

હું કોઇને માટે અમુક સંશોધન કરવાનું આજે કરવામાં આવી હતી list.asmx વેબ SharePoint ભાગ તરીકે પૂરી પાડવામાં આવેલ સેવા આસપાસ 2010 (પહેલાં અને).  તે માટે રુટ ફોલ્ડર પર યાદી વસ્તુઓ મળી આવી હતી (પેટા ફોલ્ડર્સ નામ સહિત), પરંતુ પેટા ફોલ્ડર્સ વસ્તુઓની ન મળી શકે છે.  હું કેટલાક internets પર આસપાસ જોઈ હતી અને તે આશ્ચર્યજનક રીતે સામાન્ય પ્રશ્ન છે.  હજુ સુધી, હું સરળ પ્રશ્ન માટે એક સારા જવાબ ન મળી શકે, "હું ફોલ્ડર ખબર હોય, હું કેવી રીતે ફોલ્ડર માં વસ્તુઓ મેળવી શકું?"  પ્રમાણિક હોઈ, હું જ્યારે માટે મારા પોતાના પર આ એક બહાર આકૃતિ ઇચ્છતા કર્યું ત્યારથી હું તે હાર્ડ પ્રયાસ કર્યો નથી સ્માઇલ.

આ સેટ કરવા માટે, હું "બ્લોગિંગ સ્થિતિ" અને "સબ ફોલ્ડર્સ સાથે વૈવિધ્યપૂર્ણ યાદી" નામનું વૈવિધ્યપૂર્ણ યાદી નામનું સાઇટ બનાવી છે.  હું પછી નામ આપવામાં આવ્યું ફોલ્ડર્સ બનાવનાર:

  • વર્ષ 2005
  • વર્ષ 2006
  • વર્ષ 2007

હું ફોલ્ડર "વર્ષ 2006" કરવા થોડીક વસ્તુઓ ઉમેરવામાં.  આ જેમ દેખાય છે:

image

મારો મિત્ર C # કોડ લખવા પરંતુ જાવા નો ઉપયોગ કરતું નથી, જેથી SOAP પરબિડીયું તે ખરેખર જરૂરી છે શું હતી.  કે વિચાર, હું jQuery એક બીટ લખ્યું હતું અને પછી વાસ્તવિક HTTP વાતચીત વિચાર ફીડલ વગાડનાર ઉપયોગ.

અહીં પ્રસ્તુત jQuery છે (તમે પેસ્ટ કરો / નકલ કરવા માંગો છો, તો હું નીચે કોડ નીચે નકલ):

image

તેઓ પ્રથમ કી બંને સમાવેશ થાય છે <queryOptions> અને <QueryOptions> નોડ.  બીજા કી છે કે <ફોલ્ડર> નોડ કે જે ક્લાઈન્ટ વપરાશ હોય છે કરવા માટે એક URL છે.

આ વિચાર બીજી રીતે હોઈ શકે છે, jQuery વાપરી રહ્યા હોય ત્યારે પણ આ મારા માટે સારી રીતે કામ કર્યું હતું,.

અહીં ઉપર માટે SOAP પરબિડીયું છે:

<soapenv:એન્વેલપ xmlns:soapenv =’HTTP:/// schemas.xmlsoap.org સાબુ / પરબિડીયું /’>                
  <soapenv:સંસ્થા>
    <GetListItems xmlns =’
HTTP:/// schemas.microsoft.com sharepoint / / સાબુ’>
      <ખરાઉ>સબ ફોલ્ડર્સ સાથે વૈવિધ્યપૂર્ણ યાદી</ખરાઉ>
      <viewFields>  
        <ViewFields>
          <FieldRef નામ = 'શીર્ષક’ />
          <FieldRef નામ = 'EncodedAbsUrl’ />
        </ViewFields>
      </viewFields>
      <queryOptions>
        <QueryOptions>
          <ફોલ્ડર>
HTTP://demoserver1/Blogging દૃશ્યો / યાદીઓ / સબ ફોલ્ડર્સ / વર્ષ 2006 સાથે વૈવિધ્યપૂર્ણ યાદી</ફોલ્ડર>
        </QueryOptions>
      </queryOptions>
   
</GetListItems>
  </soapenv:સંસ્થા>
</soapenv:પરબીડિયું>

આ આસપાસ ઉદાહરણો અને ચર્ચા ઘણો મને જરૂર બધા એવું માનતા હતા કે દોરી <QueryOptions> અને એક ફોલ્ડર નામ સ્પષ્ટ કરો.  મારા માટે, હું બંને કામળો તે અંદર જરૂર <queryOptions> તેમજ માટે સંપૂર્ણપણે ગુણવત્તાવાળું URL નો ઉલ્લેખ <ફોલ્ડર> વનસ્પતિના મૂળ કે શાખા ઉપર ઊપડતી ગાંઠ.

અહીં jQuery AJAX સુયોજન છે:

$(દસ્તાવેજ).તૈયાર(કાર્ય() {
       soapEnv = હતો
           "<soapenv:એન્વેલપ xmlns:soapenv =’HTTP:/// schemas.xmlsoap.org સાબુ / પરબિડીયું /’> \
               <soapenv:સંસ્થા> \
                    <GetListItems xmlns =’HTTP:/// schemas.microsoft.com sharepoint / / સાબુ’> \
                       <ખરાઉ>સબ ફોલ્ડર્સ સાથે વૈવિધ્યપૂર્ણ યાદી</ખરાઉ> \
                       <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 વેબ સેવા કરવા માટે ખૂબ જ કાળજીપૂર્વક કહેવાય છે અથવા તે ભરેલું છે એક રહસ્યમય ફેંકવું "VALUE હોઈ નલ ન કરી શકો છો" અપવાદ (અને એમ ધારી રહ્યા છીએ રહ્યું તમે પણ ખરાબ સામાન્ય ભૂલ મેસેજ મળી શકે ભૂતકાળ, “Exception of type ‘Microsoft.SharePoint.SoapServer.SoapServerException’ હતી ફેંકી દે. ")  વિશિષ્ટ રીતે, મને જાણવા મળ્યું કે તમે GetList પદ્ધતિ પર ઉપસર્ગ કોઇ પણ પ્રકારના ન આપી શકે છે.  નીચેના jQuery સ્નીપેટ બિંદુ સમજાવે:

image

જો કે તમે આવું, વેબ સેવા આ પ્રમાણે "VALUE નલ કરી શકાતી નથી" સાથે પ્રતિક્રિયા ફીડલ વગાડનાર-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>
      <વિગત>
        <ભૂલ શબ્દમાળા xmlns ="
HTTP:/// schemas.microsoft.com sharepoint / / સાબુ">
કિંમત નલ કરી શકાતી નથી.
        </errorstring>
      </વિગત>
    </સાબુ:દોષ>
  </સાબુ:સંસ્થા>
</સાબુ:પરબીડિયું>

અલબત્ત, તમે કદાચ કે તમારા પોતાના પર "s0" પૂર્વગ નથી ઉમેરો કરશે, પરંતુ કેટલાક સાધનો આમ કહીને (ઇક્લિપ્સ જેવી).

આ બધી ગૂંચવણમાં મૂકે છે / નિરાશાજનક કારણ કે, અન્ય પદ્ધતિઓ ઉપસર્ગો સહન.  દાખલા તરીકે, એ GetListCollection પદ્ધતિ છે જો તે prefixed કરવામાં આવી રહ્યું નથી દિમાગમાં નથી, પણ, જેમ કે "xyzzy" નોનસેન્સ ઉપસર્ગો સાથે:

image

આ "મૂલ્ય નથી હોઈ શકે નલ" lists.asmx સાથે એકદમ સામાન્ય લાગે છે, જેથી આસ્થાપૂર્વક આ વ્યક્તિ ભવિષ્યમાં બહાર મદદ કરશે.

</અંત>

મારા બ્લોગ પર સબ્સ્ક્રાઇબ કરો.

Twitter પર મને ખાતે અનુસરો http://www.twitter.com/pagalvin