Kategori Arşivleri: GERİ KALAN

HTTP 406 SharePoint dinlenme bitiş noktaları karşı açısal $http.get kullanırken hata

Güncelleştirme: Marc reklam ndersson bu büyük parça-in haberdar etmek işaret etti.: http://blogs.Office.com/2014/08/13/JSON-Light-support-Rest-SharePoint-api-released/. Bu çok açıklayıcı oldu :).

Bu kadar kötü başlık bir blog yazısı olabilir! Her neyse.

Ben genellikle yapmak tüm-in benim prototipleme karşı bir O365 örneği. Benim kişisel örnek başka birini etkileyen hakkında endişeli olmaya gerek yok ben vardır. Bir kenara olarak – ne zaman bizim laptoplarda MOSS ile– sanal makineleri taşınan arayacağız SQL Server hatırlıyorum, IIS, Hyper-V vs karar verme. VMWare? Her neyse...

Bu ortamda açısal kullanarak bir uygulama geliştirmişti., diğer şeyler arasında, Bu:

$http.get(serverUrl)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.value.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu sadece iyi iki farklı SharePoint çevrimiçi ortamlarda çalışıyordu. Ancak, Ne zaman benim meslektaşım Cloudshare örneğine taşıdık, o was getting bir HTTP 406 hata (Bu aldığım ilk kez neydi, Bu yüzden... yay, Sanırım). Biraz araştırma yaptım ve "Kabul ediyorum" başlık kapalı olduğunu fark ettim. SharePoint online ile gayet mutlu:

Kabul etmek: uygulama/json

Ama cloudshare örneği (prem üzerinde SP hangisi, sanal sunucuda barındırılan) Klasik istedim "odata = verbose" de eklendi:

Kabul etmek: uygulama/json;Odata = verbose

Bunu düzeltmek için, Bu başlığı eklendi:

config var = {başlıkları: {
'Kabul': ' uygulama/json;Odata = verbose'
}
};

$http.get(serverUrl,config)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.value.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu var kurtulun 406, Ama aynı zamanda yanıt biçimi değişti. Daha fazla... ayrıntılı. (haha!) Daha fazla değişiklik gerekli ve nihai sonuç:

config var = {başlıkları: {
'Kabul': ' uygulama/json;Odata = verbose'
}
};

$http.get(serverUrl,config)
.başarı(işlevi(veri, durumu, başlıkları, config) {

var getLinksResponse = veri;

getLinksResponse.d.results.forEach(işlevi(Result) {

// ve benzeri ve çok saçma

Bu sadece içine açık bir 30 bizim için dakika sorun, Biz dışarı lucked. Umarım kimse bu yararlı bulur.

</sonunda>

İnsanlar arama kapsam olarak belirtme / SharePoint kullanarak içerik kaynağı 2013 REST API

SharePoint ile çalışmak için bir nedeni vardı. 2013 Arama API'sı üzerinden ilk kez dinlenme. Kişileri aramak istedim, belgeleri değil. İşte bu öğrenme anahtar GUID'sine üzerinden içerik kaynakları belirtin (ya da en azından bu durumda). Aşağıdaki jQuery pasajı gösterir nasıl:

    loadExpertsAsync: işlevi() {

        jQuery.support.cors = TRUE;

        $.Ajax({
            URL: Bu.CreateFullApiUrl() +
                "?Querytext 'portalları' =&kaynak kimlik = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Becerileri,AboutMe,İlgi alanları,İş unvanı,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&ROWLIMIT = 99",
            yöntemi: "Al",
            başlıkları: { "Kabul etmek": "uygulama/json; Odata = verbose" },
            önbellek: yanlış,
            başarı: işlevi (Sonuç) {

Benim durumumda, I koşma API SharePoint karşı online. GUID elde etmek için, Aşağıdaki adımları takip:

  1. SharePoint Yönetim Merkezi'ne erişmek
  2. "Sol navigasyon arama" seçin
  3. "Sonuç kaynaklarını Yönet" seçin
  4. "Yerel halkın sonuçları" seçin
  5. URL bakmak.

Benim URL gibi bir şey görünüyordu.:

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

Kaynak kimlik parametresidir ne amele için beni.

(Kaynak kimlik aslında bir tür SP ile kalıcı şeyler olabilir anlamak, but I’ll always check anyway 🙂 ).

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Örnek SharePoint diğer aramalar

İş için beni ve de yardımcı olabilir örnek dinlenme çağrıları bir dizi işte. Güncelliği 02/2014, iki örnek var 🙂

  1. Adının içinde boşluklar içeren bir sütun başvurusu
  2. Çoklu seçim bir sütun başvurusu
  3. Geri kalan yolu ile insanların arama yapın

 

Bunun için zaman geçtikçe ekleyeceğiz.

İşte bazı yararlı mürekkepler de buldum:

Adının içinde boşluklar içeren bir sütun başvurusu

"Blog yazarı" adlı bir sütun ile özel liste oluşturma (Blog ile yazar arasındaki boşluk).

O sütuna başvurmak için $select olduğunu:

image

Sadece "_x0020_" boşluğun yerine. Karşıdan karşıya belgili tanımlık enterne _x0020_ birçok örneklerde gördüğümüz ve dinlenme farklı.

Eğer bunu yapmazsan, Böyle bir hata mesajı almak sorumlu:

İfade “Blog yazar” geçerli değil.

Kolay yeterli.

Referans çoklu seçim arama sütunu

Kurmak:

  1. Kategoriler adlı özel liste oluşturma.
  2. Bazı Kategoriler ekleme. Thusly Kategoriler eklendi:image
  3. MockBlog adı verilen başka bir özel liste oluşturun ve Kategoriler çoklu seçim liste sütun olarak eklemek (nasıl roll ise sütun sitesi veya).

Bazı öğeler Mockblog listenize ekleyin ve hazır.

JQuery kullanarak Ajax tarzı aramayý şuna benzer:

serverUrl  = "/_api/web/liste/GetByTitle('MockBlog')/öğeleri" +
             "?$seçin Title =,Kategoriler/başlık,Blog_x0020_Author/başlık" + 
             "&$genişletme Blog_x0020_Author =,Kategoriler";

SharePoint söylüyoruz "tüm kategoriler için başlık verin (Kategoriler/başlık). Fiili değerlerini almak Başlık tarafından $genişletmeIng Kategoriler listesi." (Benim huzurlu paraphrasing muhtemelen oldukça gevşek, Ama bu ne kadar bu yorumlama).

Eğer bu yolu ile JavaScript ve kemancı çıkış kullanılarak yapıyoruz, Böyle bir şey alıyorsun:

 

image

(Yukarıda bir JSON nesnesi olan)

Geri kalan yolu ile insanların arama yapın

Ben bu konuda blogged ayrı ayrı. Yerel halkın içerik kaynağı GUID değeri olan kaynak kimlik parametre belirtmek için anahtarıdır. (Kapsamları çağrılacak kullanılan içerik kaynakları ve her şey benim için bir kapsam aramak için Ah-benim çok zor değil mi!).

Devamı bu konuda burada: http://www.mstechblogs.com/paul/?p=10385

 

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Hızlı ve kolay: DİNLENME kullanarak bir SharePoint sitesi oluşturma

Bunu nasıl kaynaklarını gösteren etrafında vardır., Ama kapsamlı gitmek için bir link bulamadım., İşte.

REST API kullanarak bir SharePoint sitesi oluşturabilir.  Tamamen pişmiş bir örnek:

<!--
    SiteRequestForm.html: Bilgi toplama ve kullanıcı için bir site oluşturun.
-->

<Merkezi>
<Tablo>
    <tr>
        <TD>Site adı:</TD>
        <TD><giriş türü= "metin" adı"SiteAdı =" kimliği"SiteAdı =" /></TD>
    </tr>
    <tr>
        <TD colspan"2 =">
            <giriş türü"submit =" kimliği"CreateSiteButton =" değer= "Site Oluştur" />
        </TD>
    </tr>
</Tablo>
</Merkezi>

<komut dosyası src="../Plugins/jQuery-1.11.0.min.js"></komut dosyası>

<komut dosyası>
var CreateSiteLogicContainer = {

    createSiteData: {
            "parametreleri": {
                __metadata: { "türü": "SPWebInfoCreationInformation" },
                URL: "Paultest1",
                Başlık: "Paultest1",
                Açıklama: Paul tarafından web diğerleri tarafından oluşturulan"!",
                Dil: 1033,
                LCID'sine: "sts",
                UseUniquePermissions: yanlış
            }
    },

    createSite: işlevi () {

        jQuery.support.cors = TRUE;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            yöntemi: "MESAJ",

            başlıkları: {
                "Kabul et": "uygulama/json; Odata = verbose",
                "content-type": "uygulama/json;Odata = verbose",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            veri: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            başarı: işlevi () { Uyarı("başarı"); },
            hata: işlevi () { Uyarı("hatası"); }

        });
    },

    wireUpForm: işlevi () {
        $("#CreateSiteButton").' ı tıklatın(işlevi () {
            Uyarı("Yaklaşık denemek ve siteyi oluşturmak için.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</komut dosyası>

Başarılı olduğunda, Bu yanıt bir JSON paket al:

image

Temel düşünce ve bu olası üzerinden Öğrenmeler:

  • Bu yaklaşım, jQuery kullanır.  Benim durumumda, benim jQuery kütüphanesi bulunur ".../ plugins. "  Bu senin en sevdiğin JQ konumu belirtmek için değiştirmek istediğiniz.
  • Kopyalayabilir ve içerik Düzenleyicisi Web Bölümü sayfasındaki tüm bu pasajı yapıştırın ve sadece iyi çalışması gerekir.  Youll'istemek-e doğru JQ başvuru emin olun ve API çağrısı bitiş noktası değiştirmek için.
  • URL'nin göreli olarak API'ın bitiş noktasıdır.  Benim durumumda, altında alt siteler oluşturma https://bigapplesharepoint.com
  • Bir içerik-uzunluk sağlamak gerek yok. Bazı blog yazıları ve MSDN belgesi anlamına gelir senin böyle, Ama benim için otomatik olarak oldu., varsayıyorum $.ajax çağrısı tarafından ele alınır.
  • Bu satır için bir "yasak" yanıtı önlemek için gerekli: "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Bunu yapmak için başka yolları da vardır, Ama bu çok hoş.  Blog için bu kısayolu sağlanan bağlantıyı kaybettim.  H/T size, gizemli blogger!

İyi şanslar ve kimse bu yardımcı olur.

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin

Hızlı ve basit: SharePoint dinlenme çağrı tek döndürür 100 Kayıtları

Ben bir kamu bakan web sitesinde burada içinde benim SharePoint uygulama için çalışıyoruz New York ve içerik göstermek için bir sürü JavaScript ve REST telefonu kullanır.

Ana hat geliştirme sırasında, Sadece küçük bir veri kümesi oluştur 10 veya satırları özel liste ve dinlenme aramalarıma oradan çok çekti.  Bir kez birkaç yüz beklenen büyüme için test edilecek verilerin satır için listesini çarptı., Ben tam olarak başlamıştı bulundu. 100 geri kalan telefonlarıma geri satırları.

Adres için çok basit bir şey bu.  Benim durumumda (ve çoğu zaman inanıyorum), varsayılan diğer SharePoint için çağırır. (ve muhtemelen bir endüstri standardı olarak?) geri dönmek 100 satırları.  Daha fazla varsayılan dönmek için, Aramanız için $top parametresini kullanın, olarak:

/Insights Dev/_api/Web/Lists/GetByTitle olsun('MockBlog')/öğeleri?$seçin ID =,Başlık,Kategoriler/başlık,Blog_x0020_Author/başlık,DatePublished,BlogSummary&$genişletme Blog_x0020_Author =,Kategoriler&$Filtre =&$Top = 9999

Ben aldım 9999 Bu durumda beri growth-wise biliyorum, orada alışkanlık'var olmak daha--dan 200 veya satırları bir yıl içinde bu listeye ekledi.  Hantal hale gelirse, Yolun aşağısında bir disk belleği uygulayabilirsiniz.

</sonunda>

undefinedBenim blog abone.

Heyecan beni izleyin http://www.twitter.com/pagalvin