lưu trữ hàng tháng: Tháng hai 2014

Làm thế nào để chỉ định người làm một phạm vi tìm kiếm / Nội dung nguồn bằng cách sử dụng SharePoint 2013 CÒN LẠI API

Tôi có lý do để làm việc với SharePoint 2013 Tìm kiếm API thông qua phần còn lại cho lần đầu tiên. Tôi muốn tìm kiếm cho người, không tài liệu. Các khóa học ở đây là bạn chỉ định nội dung nguồn thông qua GUID (hoặc ít trong trường hợp này). Hiện đoạn sau jQuery làm thế nào:

    loadExpertsAsync: chức năng() {

        jQuery.support.cors = sự thật;

        $.Ajax({
            URL: Điều này.CreateFullApiUrl() +
                "?querytext = 'cổng'&sourceid = 'b09a7990-05ea-4af9-81ef-edfab16c4e31'" +
                "&selectproperties ='LinkedInProfileUrl,GoogleCirclesProfileUrl,BALargeProfilePictureUrls,BAGridPictures,WorkEmail,Kỹ năng,TiếngViệt,Lợi ích,JobTitle,PastProjects,PictureURL,PreferredName,TwitterHandle,LinkedInProfileUrl,PreferredName,GoogleCirclesProfileUrl'" +
                "&rowlimit = 99",
            phương pháp: "NHẬN ĐƯỢC",
            tiêu đề: { "Chấp nhận": "ứng dụng/json; oData = tiết" },
            bộ nhớ cache: sai,
            thành công: chức năng (kết quả) {

Trong trường hợp của tôi, Tôi đang chạy API với SharePoint trực tuyến. Để có được GUID, Tôi theo các bước sau:

  1. Truy cập Trung tâm quản trị SharePoint
  2. Chọn "tìm kiếm" từ menu bên trái
  3. Chọn "quản lý kết quả nguồn"
  4. Chọn "Người dân địa phương kết quả"
  5. Nhìn vào URL.

URL của tôi nhìn một cái gì đó như:

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

Tham số sourceid là những gì làm việc cho tôi.

(Tôi hiểu rằng sourceid có thể thực sự là một loại điều vĩnh viễn với SP, nhưng tôi sẽ luôn kiểm tra 🙂 ).

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Ví dụ SharePoint còn lại cuộc gọi

Đây là một tập hợp các mẫu còn lại cuộc gọi mà làm việc cho tôi và có thể giúp bạn ra ngoài là tốt. Như là 02/2014, có hai ví dụ 🙂

  1. Tham khảo một cột với không gian tên
  2. Tài liệu tham khảo một đa chọn cột
  3. Thực hiện một người tìm kiếm thông qua phần còn lại

 

Tôi sẽ thêm vào này là vượt qua thời gian.

Dưới đây là một số loại mực hữu ích tôi đã tìm thấy là tốt:

Tham khảo một cột với không gian tên

Tôi tạo ra một danh sách tùy chỉnh với một cột tên là "Tác giả Blog" (không gian giữa Blog và tác giả).

$select để tham khảo các cột là:

image

Đơn giản chỉ cần thay thế không gian với "_x0020_". Chúng ta thấy _x0020_ trong nhiều ví dụ trên internets và phần còn lại cũng không khác nhau.

Nếu bạn không làm điều đó, bạn đang chịu trách nhiệm để có được một thông báo lỗi như thế này:

Biểu thức “Tác giả blog” là không hợp lệ.

Dễ dàng đủ.

Tài liệu tham khảo một tra cứu đa chọn cột

Thiết lập:

  1. Tạo một danh sách tùy chỉnh tên thể loại.
  2. Thêm một số loại. Tôi thêm vào thể loại thusly:image
  3. Tạo một danh sách tùy chỉnh được gọi là MockBlog và thêm thể loại như là một danh sách chọn-nhiều cột (hoặc trang web cột nếu đó là làm thế nào bạn cuộn).

Thêm một số mục vào danh sách Mockblog của bạn và bạn đã sẵn sàng.

Một cuộc gọi Ajax phong cách bằng cách sử dụng jQuery sẽ trông như thế này:

serverUrl = "/_api/web/danh sách/GetByTitle('MockBlog')/khoản mục" +
             "?$chọn = tiêu đề,Thể loại/tiêu đề,Blog_x0020_Author/tiêu đề" + 
             "&$mở rộng = Blog_x0020_Author,Thể loại";

Chúng tôi đang nói với SharePoint "cho tôi tiêu đề cho tất cả các loại (Thể loại/tiêu đề). Nhận được các giá trị thực tế cho Tiêu đề bởi $mở rộnging trong danh sách thể loại." (Paraphrasing yên tĩnh của tôi là có lẽ khá lỏng lẻo, nhưng điều này như thế nào tôi là thông dịch nó).

Nếu bạn đang làm điều này thông qua JavaScript và sử dụng Fiddler để nhìn vào đầu ra, bạn nhận được một cái gì đó như thế này trong trở lại:

 

image

(Trên đây là một đối tượng JSON)

Thực hiện một người tìm kiếm thông qua phần còn lại

Tôi viết blog về việc này một cách riêng biệt. Điều quan trọng là để chỉ định một tham số sourceid có giá trị là GUID của người dân địa phương nội dung nguồn. (Nội dung nguồn được sử dụng để được gọi là phạm vi và nó là của tôi-oh-của tôi khó khăn như vậy không phải gọi tất cả mọi thứ một phạm vi đối với tôi!).

Tìm hiểu thêm về nó ở đây: http://www.mstechblogs.com/paul/?p=10385

 

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Nhanh chóng và dễ dàng: Tạo một trang web SharePoint sử dụng còn lại

Có rất nhiều tài nguyên xung quanh thành phố cho thấy làm thế nào để làm điều này, nhưng tôi không thể tìm thấy một liên kết đi đến toàn diện, Vì vậy ở đây chúng tôi là.

Bạn có thể tạo ra một trang web SharePoint sử dụng API còn lại.  Đây là một ví dụ đầy đủ nướng:

<!--
    SiteRequestForm.html: Thu thập thông tin và tạo ra một trang web cho người dùng.
-->

<Trung tâm>
<Bàn>
    <tr>
        <TD>Tên trang web:</TD>
        <TD><đầu vào loại= "văn bản" Tên= "SiteName" ID= "SiteName" /></TD>
    </tr>
    <tr>
        <TD colSpan= "2">
            <đầu vào loại= "gửi" ID= "CreateSiteButton" giá trị= "Tạo các trang web" />
        </TD>
    </tr>
</Bàn>
</Trung tâm>

<kịch bản SRC="../Plugins/jQuery-1.11.0.min.js"></kịch bản>

<kịch bản>
var CreateSiteLogicContainer = {

    createSiteData: {
            "tham số": {
                __metadata: { "loại": "SP.WebInfoCreationInformation" },
                URL: "Paultest1",
                Tiêu đề: "Paultest1",
                Mô tả: "còn lại tạo ra web bởi Paul!",
                Ngôn ngữ: 1033,
                WebTemplate: "sts",
                UseUniquePermissions: sai
            }
    },

    createSite: chức năng () {

        jQuery.support.cors = sự thật;

        CreateSiteLogicContainer.createSiteData.parameters.Url = $("#SiteName").Val();
        
        $.Ajax({
            URL: "https://bigapplesharepoint.sharepoint.com/NBAIADev/_api/web/webinfos/add",
            phương pháp: "BÀI VIẾT",

            tiêu đề: {
                "Chấp nhận": "ứng dụng/json; oData = tiết",
                "content-type": "ứng dụng/json;oData = tiết",
                "X-RequestDigest": $("#__REQUESTDIGEST").Val()
            },

            dữ liệu: JSON.stringify(CreateSiteLogicContainer.createSiteData),

            thành công: chức năng () { cảnh báo("thành công"); },
            lỗi: chức năng () { cảnh báo("lỗi"); }

        });
    },

    wireUpForm: chức năng () {
        $("#CreateSiteButton").Nhấp vào(chức năng () {
            cảnh báo("Về để thử và tạo ra các trang web.");
            CreateSiteLogicContainer.createSite();
        });
    }


}

CreateSiteLogicContainer.wireUpForm();

</kịch bản>

Khi thành công, bạn nhận được một gói dữ liệu JSON trong phản ứng như thế này:

image

Chính những suy nghĩ của tôi và bài học từ này bao gồm:

  • Cách tiếp cận này sử dụng jQuery.  Trong trường hợp của tôi, thư viện jQuery của tôi nằm trong ".../ plugins. "  Bạn sẽ muốn thay đổi điều đó để trỏ đến vị trí JQ yêu thích của bạn.
  • Bạn có thể sao chép và dán đó toàn bộ đoạn thành một phần biên tập nội dung Web trên một trang và nó sẽ làm việc chỉ tốt.  Bạn sẽ muốn thay đổi điểm kết thúc của cuộc gọi API và đảm bảo rằng bạn tham khảo JQ một cách chính xác.
  • URL có liên quan điểm cuối của API của bạn.  Trong trường hợp của tôi, nó việc tạo ra các trang web phụ bên dưới https://bigapplesharepoint.com
  • Bạn không cần phải cung cấp nội dung dài. Một số bài đăng trên blog và MSDN tài liệu ngụ ý rằng bạn làm, nhưng đã xảy ra cho tôi tự động, mà tôi giả định đang được xử lý bởi các cuộc gọi .ajax $ chính nó.
  • Dòng này là cần thiết để tránh một phản ứng "Cấm": "X-RequestDigest": $("#__REQUESTDIGEST").Val().  Có những cách khác để làm điều đó, nhưng điều này là khá tốt đẹp.  Tôi đã mất liên kết vào blog đó cung cấp lối tắt này.  H/T để bạn, bí ẩn blogger!

Chúc may mắn và hy vọng điều này sẽ giúp người nào đó.

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Khắc phục các vấn đề khó chịu với URL tương đối trong SharePoint Quick Launch

Tôi muốn thêm một liên kết để chuyển hướng nhanh chóng khởi chạy ngày khác và SharePoint nói với tôi:

image

Phiên bản thuần văn bản đó là:

Đảm bảo rằng URL hợp lệ và bắt đầu với một nhân vật hợp lệ (một dấu hiệu số (#) hoặc dấu gạch chéo phía trước (/)) hoặc một giao thức được hỗ trợ hợp lệ (Ví dụ, ' http://’, ' https://’, ' tập tin://’, ' ftp://’, ' mailto:’, ' tin tức:’).

"Blech và thủy!"Tôi đã nói.

Giải pháp này là sử dụng JavaScript để tìm thấy một liên kết được biết đến trong khởi động nhanh chóng và thay thế chế độ của nó.

Để thử nghiệm này, Thêm một liên kết mới vào trang web thử nghiệm của bạn thusly:

image

Tôi đã sử dụng jQuery. Để giải quyết nó, nhận được một số JavaScript và jQuery lên trang bằng cách sử dụng kỹ thuật ưa thích của bạn và với một dòng mã như thế này:

 

$(tài liệu).sẵn sàng( chức năng () {

    $("một:chứa('Kiểm tra URL thay thế')").Nhấp vào(chức năng () { cảnh báo("nhấp vào thay đổi hành vi!"); trở lại sai;});

});

Và Bob của chú.

Bộ chọn jQuery tìm thấy mỗi <một> từ khóa có "Kiểm tra URL thay thế" trong tên của nó. Bạn có thể muốn tìm-giai điệu mà tùy thuộc vào liên kết của bạn và như vậy.

.click(chức năng() ghi đè lên bất cứ điều gì SharePoint đã có thể thực hiện khi người dùng nhấp vào. Đảm bảo rằng bạn trở lại"sai" hoặc người nào khác nó sẽ làm công cụ của bạn và sau đó cố gắng điều href quá, đó là gần như chắc chắn không phải là mục tiêu của bạn.

Điều này được thực hiện và thử nghiệm trong một môi trường trực tuyến SharePoint nhưng nên làm việc tốt trong 2010 và trước đó quá.

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Nhanh chóng và đơn giản: SharePoint còn lại gọi chỉ trả về 100 Hồ sơ

Tôi đã làm việc trên một trang web công cộng phải đối mặt với thực tế SharePoint của tôi ở đây trong New York và nó sử dụng rất nhiều cuộc gọi JavaScript và còn lại để hiển thị nội dung.

Trong những phát triển, Tôi tạo ra một tập dữ liệu nhỏ với chỉ 10 hoặc vì vậy hàng trong một danh sách tùy chỉnh và các cuộc gọi phần còn lại của tôi tất cả Lấy từ đó.  Một lần tôi bumped lên danh sách để có một số hàng trăm của dữ liệu để kiểm tra dự đoán tăng trưởng, Tôi thấy rằng tôi đã nhận được chính xác 100 hàng quay trở lại trên cuộc gọi phần còn lại của tôi.

Đây là một điều rất đơn giản để địa chỉ.  Trong trường hợp của tôi (và tôi tin rằng trong nhiều trường hợp), mặc định còn lại gọi cho SharePoint (và có thể là một ngành công nghiệp tiêu chuẩn?) trở lại 100 hàng.  Để trở lại nhiều hơn mặc định, sử dụng tham số $top trên cuộc gọi của bạn, như trong:

Nhận được /Insights Dev/_api/web/lists/GetByTitle('MockBlog')/khoản mục?$chọn = ID,Tiêu đề,Thể loại/tiêu đề,Blog_x0020_Author/tiêu đề,DatePublished,BlogSummary&$mở rộng = Blog_x0020_Author,Thể loại&$bộ lọc =&$đầu = 9999

Tôi đã chọn 9999 trong trường hợp này kể từ khi tôi biết rằng growth-wise, sẽ không có nhiều hơn 200 hoặc vì vậy hàng thêm vào danh sách này trong một năm.  Nếu nó sẽ trở thành ungainly, chúng tôi có thể thực hiện một số phân trang xuống đường.

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin

Nhanh chóng và đơn giản: Giải quyết "tham số URL không hợp lệ” vấn đề với UpdateListItems trong lists.asmx

Khi làm việc với UpdateListItems qua lists.asmx, nó rất dễ dàng để tạo ra lỗi:

Tham số URL không hợp lệ.

URL được cung cấp có chứa một lệnh không hợp lệ hoặc giá trị. Xin vui lòng kiểm tra lại URL.

Bạn có thể nhận được lỗi này khi bạn quên bao gồm ID trong các danh sách các lĩnh vực để cập nhật.  Điều này, giống như rất nhiều các SP dịch vụ web, là một chút counterintuitive kể từ khi bạn cần bao gồm ID trong các thuộc tính ID của các <Phương pháp> nguyên tố.  Và Anh không Cập Nhật ID và có lẽ không bao giờ muốn để ở nơi đầu tiên.

Phong bì xà phòng này làm việc:

<soapenv:Phong bì xmlns:soapenv =' http://schemas.xmlsoap.org/Soap/Envelope/'>
  <soapenv:Cơ thể>                      
    <UpdateListItems xmlns =' http://schemas.Microsoft.com/SharePoint/SOAP/'>                     
      <listName>{C712E2EA-54E1-47AD-9D99-1848C7773E2F}</listName>                     
        <bản Cập Nhật>                     
         <Hàng loạt các OnError ="Tiếp tục">
          <Phương pháp ID ="1" CMD ="Cập Nhật">
            <Lĩnh vực tên ="CooperativeLock">bị khóa!</Lĩnh vực>
            <Lĩnh vực tên ="ID">1</Lĩnh vực>
          </Phương pháp>
        </Lô>                     
        </bản Cập Nhật>                
      </UpdateListItems>             
  </soapenv:Cơ thể>         
</soapenv:Phong bì>

Nếu bạn loại bỏ tài liệu tham khảo trường ID sau đó bạn sẽ nhận được thông báo "URL không hợp lệ tham số" gây phiền nhiễu.

</kết thúc>

undefinedĐăng ký vào blog của tôi.

Theo tôi trên Twitter lúc http://www.twitter.com/pagalvin