Arkib Bulanan: Februari 2014

Bagaimana Untuk Tentukan Rakyat sebagai Skop Carian / Kandungan Sumber Menggunakan SharePoint 2013 REST API

Saya punya alasan untuk bekerja dengan SharePoint dalam 2013 Search API melalui rehat buat pertama kalinya. Saya ingin mencari orang-orang, dokumen tidak. Kekunci yang belajar di sini adalah bahawa anda tentukan kandungan sumber melalui GUID dalam (atau sekurang-kurangnya dalam kes ini). Menunjukkan cebisan jQuery berikut bagaimana:

    loadExpertsAsync: fungsi() {

        jQuery.support.cors = benar;

        $.Ajax({
            url: ini.CreateFullApiUrl() +
                "?querytext = 'Portal'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Kemahiran,AboutMe,Kepentingan,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            kaedah: "MENDAPATKAN",
            header: { "Menerima": "Permohonan/json; odata = banyak cakap" },
            cache: palsu,
            kejayaan: fungsi (keputusan) {

Dalam kes saya,, Aku berlari API terhadap SharePoint dalam talian. Untuk mendapatkan GUID, Saya mengikuti langkah-langkah ini:

  1. Mencapai Pusat Tadbir SharePoint
  2. Pilih "carian" dari navigasi sebelah kiri
  3. Pilih "Urus sumber-sumber hasil"
  4. Pilih "Hasil penduduk tempatan"
  5. Lihatlah URL.

URL saya kelihatan seakan-akan:

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

Sourceid parameter adalah apa yang bekerja untuk saya.

(Saya faham bahawa sourceid yang benar-benar boleh menjadi sejenis benda yang kekal dengan SP, but I’ll always check anyway 🙂 ).

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Panggilan Contoh SharePoint REST

Di sini adalah sekumpulan sampel lain panggilan yang bekerja untuk saya dan mungkin membantu anda serta. Sehingga 02/2014, there are two examples 🙂

  1. Rujukan medan dengan kawasan atas namanya
  2. Rujukan lajur pelbagai Pilih
  3. Melakukan carian orang melalui rehat

 

Saya akan menambah ini sebagai Pas masa.

Berikut adalah beberapa dakwat berguna yang saya dapati juga:

Rujukan medan dengan kawasan atas namanya

Saya mencipta senarai tersuai dengan satu kolum yang dinamakan "Penulis Blog" (Ruang di antara Blog dan penulis).

$select untuk rujukan medan yang merupakan:

image

Hanya menggantikan tempat dengan "_x0020_". Kita lihat _x0020_ dalam banyak contoh di seluruh Internet ini dan SELEBIHNYA adalah tidak berbeza.

Jika anda tidak berbuat demikian, anda bertanggungjawab untuk mendapatkan mesej ralat seperti ini:

Ungkapan “Penulis blog” adalah tidak sah.

Cukup mudah.

Rujukan lajur pelbagai Pilih Lookup

Sediakan:

  1. Mencipta senarai tersuai dinamakan kategori.
  2. Tambah beberapa kategori. Saya menambah kategori Ehwal:image
  3. Cipta senarai tersuai lain yang dipanggil MockBlog dan Tambah Kategori sebagai lajur pelbagai Pilih senarai (atau tapak tiang jika Itulah bagaimana anda menggulung).

Menambah beberapa item ke senarai Mockblog dan anda sudah bersedia.

Panggilan Ajax gaya yang menggunakan jQuery akan terlihat seperti ini:

serverUrl  = "/_api/web/senarai/GetByTitle('MockBlog')/barang-barang" +
             "?$Pilih Tajuk =,Kategori/tajuk,Blog_x0020_Author/tajuk" + 
             "&$mengembangkan = Blog_x0020_Author,Kategori";

Kami sudah memberitahu SharePoint "memberikan tajuk untuk semua kategori (Kategori/tajuk). Mendapatkan nilai sebenar bagi Title oleh $memperluaskanING dalam senarai kategori." (Saya tenang paraphrasing yang mungkin agak longgar, tetapi ini Bagaimana saya saya mentafsirkan).

Jika anda melakukan ini melalui JavaScript dan menggunakan Fiddler untuk melihat output, anda mendapat sesuatu seperti ini sebagai balasan:

 

image

(Di atas adalah objek JSON)

Melakukan carian orang melalui rehat

Saya blogged tentang perkara ini secara berasingan. Utama adalah untuk menentukan parameter sourceid nilai yang merupakan GUID sumber kandungan penduduk tempatan. (Kandungan sumber digunakan untuk dihubungi skop dan memang saya-oh-saya tidak begitu sukar untuk memanggil semua skop bagi saya!).

Baca lebih lanjut mengenai di sini: http://www.mstechblogs.com/paul/?p=10385

 

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Pantas dan Mudah: Cipta Laman REST SharePoint Menggunakan

Terdapat banyak sumber sekitar menunjukkan bahawa cara untuk melakukan ini, tetapi saya tidak dapat mencari pautan go ke komprehensif, Jadi di sini kita akan.

Anda boleh mencipta tapak SharePoint menggunakan API lain.  Berikut adalah satu contoh yang dimasak sepenuhnya:

<!--
    SiteRequestForm.html: Mengumpul maklumat dan mencipta Laman web untuk pengguna.
-->

<pusat>
<jadual>
    <tr>
        <td>Nama tapak:</td>
        <td><input Jenis= "teks" Nama= "SiteName" id= "SiteName" /></td>
    </tr>
    <tr>
        <td colspan= "2">
            <input Jenis= "serah" id= "CreateSiteButton" nilai= "Mewujudkan laman web ini" />
        </td>
    </tr>
</jadual>
</pusat>

<skrip JPP=".. /Plugins/jQuery-1.11.0.min.js"></skrip>

<skrip>
VAR CreateSiteLogicContainer = {

    createSiteData: {
            "parameter": {
                __metadata: { "jenis": "SP. WebInfoCreationInformation" },
                URL: "Paultest1",
                Title: "Paultest1",
                Penerangan: "rehat-dicipta web oleh Paul!",
                Bahasa: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: palsu
            }
    },

    createSite: fungsi () {

        jQuery.support.cors = benar;

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

            header: {
                "Menerima": "permohonan/json; odata = banyak cakap",
                "content-type": "permohonan/json;odata = banyak cakap",
                "X-RequestDigest": $("#__REQUESTDIGEST").val()
            },

            data: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            kejayaan: fungsi () { berjaga-jaga("kejayaan"); },
            kesilapan: fungsi () { berjaga-jaga("Ralat"); }

        });
    },

    wireUpForm: fungsi () {
        $("#CreateSiteButton").klik(fungsi () {
            berjaga-jaga("Kira-kira untuk mencuba dan mewujudkan laman web ini.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</skrip>

Apabila berjaya, anda akan mendapat satu paket JSON dalam jawapan seperti ini:

image

Utama pemikiran dan learnings daripada ini termasuk saya:

  • Pendekatan ini menggunakan jQuery.  Dalam kes saya,, Pustaka jQuery terletak di "... / plugin. "  Anda akan mahu ubah hakikat itu untuk menghala ke lokasi JQ kegemaran anda.
  • Anda boleh menyalin dan menampal cebisan itu turun ke bahagian Web Editor kandungan di halaman dan ia harus bekerja saja.  Anda akan mahu untuk mengubah titik tamat panggilan API dan pastikan anda rujukan JQ dengan betul.
  • URL adalah berbanding dengan titik tamat API anda.  Dalam kes saya,, Ia mewujudkan sub tapak di bawahnya https://bigapplesharepoint.com
  • Anda tidak perlu menyediakan kandungan-panjang. Beberapa posting blog dan MSDN dokumen membayangkan yang anda lakukan, tetapi berlaku untuk saya secara automatik, yang saya anggap sebagai dikendalikan oleh panggilan .ajax $ sendiri.
  • Talian ini diperlukan untuk mengelakkan jawapan "haram": "X-RequestDigest": $("#__REQUESTDIGEST").val().  Terdapat pelbagai cara untuk melakukannya, tetapi ini adalah cukup bagus.  Saya telah kehilangan link ke blog yang diberikan pintasan ini.  H/T kepada anda, blogger misteri!

Nasib baik dan harap ini membantu seseorang.

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Mengatasi Masalah Annoying dengan Url relatif dalam SharePoint Pelancaran Pantas

Saya ingin menambah link ke pelancaran quick navigasi haritu dan SharePoint memberitahu saya:

image

Versi teks murni itu:

Memastikan bahawa URL adalah sah dan bermula dengan sama ada bersifat sah (tanda nombor (#) atau garis condong hadapan (/)) atau sah disokong protokol (contohnya, ' http://', ' https://', ' fail://', ' ftp://', ' mailto:', ' berita:').

"Blech dan pox!"Saya berkata.

Workaround ini adalah dengan menggunakan JavaScript untuk mencari pautan dikenali pelancaran quick dan menulis ganti kelakuan yang.

Untuk ujian ini, Tambah pautan baru ke laman web anda ujian Ehwal:

image

Saya menggunakan jQuery. Untuk menyelesaikannya, mendapatkan beberapa JavaScript dan jQuery ke halaman menggunakan teknik kegemaran anda dan dengan baris kod seperti ini:

 

$(dokumen).bersedia( fungsi () {

    $("1:mengandungi('Ujian penggantian URL')").klik(fungsi () { berjaga-jaga("tingkah laku berubah klik!"); kembali palsu;});

});

Dan Bob bapa saudara anda.

PEMILIH jQuery mendapati setiap <1> tag yang mempunyai "URL ujian penggantian" pada namanya. Anda mungkin mahu mencari-tune yang bergantung kepada anda link dan apa-apa.

.Click dalam(fungsi() menindih apa SharePoint akan peroleh apabila pengguna klik. Pastikan anda "kembali palsu" atau kalau ia akan melakukan hal anda dan kemudian cuba untuk perkara href yang terlalu, yang sudah hampir pasti bukan matlamat anda.

Ini telah dilakukan dan ujian dalam persekitaran SharePoint dalam talian tetapi sekiranya kerja baik di 2010 dan lebih awal terlalu.

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Cepat mudah dan: SharePoint REST Call Pulangan Hanya 100 Rekod

Saya telah bekerja pada laman web awam menghadapi untuk SharePoint amalan saya di sini dalam New York dan ia menggunakan banyak panggilan JavaScript dan SELEBIHNYA untuk menunjukkan kandungan.

Semasa pembangunan tali tambahan gelung kekili, Saya mencipta dataset kecil dengan hanya 10 atau jadi baris dalam senarai tersuai dan panggilan rehat saya semua ditarik dari situ.  Pernah saya terserempak sehingga senarai untuk mempunyai beberapa ratus baris data untuk menguji jangkaan pertumbuhan, Saya mendapati bahawa saya mendapat betul-betul 100 baris yang kembali semula pada panggilan rehat saya.

Ini adalah satu perkara yang sangat mudah untuk alamat.  Dalam kes saya, (dan saya percaya dalam kebanyakan kes), panggilan lain lalai untuk SharePoint (dan mungkin sebagai satu standard industri?) kembali 100 baris.  Untuk kembali lebih daripada lalai, Gunakan $top parameter pada panggilan anda, seperti dalam:

MENDAPAT /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/barang-barang?$pilih = ID,Title,Kategori/tajuk,Blog_x0020_Author/tajuk,DatePublished,BlogSummary&$mengembangkan = Blog_x0020_Author,Kategori&$penapis =&$atas = 9999

Saya memilih 9999 dalam kes ini kerana saya tahu bahawa growth-wise, tidak akan lebih daripada 200 atau jadi baris ditambah ke senarai ini dalam setahun.  Jika ia menjadi ungainly, kita boleh melaksanakan penghalaman beberapa hujung jalan.

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin

Cepat mudah dan: Menyelesaikan "Parameter URL tidak sah” masalah dengan UpdateListItems dalam lists.asmx

Apabila bekerja dengan UpdateListItems melalui lists.asmx, sangat mudah untuk menjana Ralatnya:

Parameter URL tidak sah.

URL yang diberikan mengandungi perintah yang tidak sah atau nilai. Sila semak URL lagi.

Anda boleh mendapat ralat ini apabila anda terlupa untuk memasukkan ID dalam dalam senarai bidang-bidang untuk mengemaskini.  Ini, seperti banyak perkhidmatan web-SP, adalah agak berlawanan kerana anda perlu memasukkan ID dalam atribut ID daripada pihak <Kaedah> elemen.  Dan anda tidak dikemaskini ID dan mungkin tidak mahu di tempat pertama.

Kerja-kerja sampul surat SABUN ini:

<soapenv:Xmlns sampul surat:soapenv =' http://schemas.xmlsoap.org/SOAP/envelope/'>
  <soapenv:Badan>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <Kemas kini>                     
         <Kumpulan OnError ="Teruskan">
          <Kaedah ID ="1" Cmd ="Kemas kini">
            <Medan nama ="CooperativeLock">dikunci!</Bidang>
            <Medan nama ="ID">1</Bidang>
          </Kaedah>
        </Kelompok>                     
        </Kemas kini>                
      </UpdateListItems>             
  </soapenv:Badan>         
</soapenv:Sampul surat>

Jika anda jalur Keluar ID bidang rujukan maka anda akan mendapat mesej "URL tidak sah parameter" menyakitkan hati.

</akhir>

undefinedLanggan ke blog saya.

Mengikuti aku di Twitter http://www.twitter.com/pagalvin