65.9K
CodeProject 正在变化。 阅读更多。
Home

在 SharePoint 插件中使用 SharePoint REST API

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.33/5 (2投票s)

2015 年 8 月 24 日

CPOL

2分钟阅读

viewsIcon

32460

downloadIcon

5

一个使用 REST API 和跨域库的简单 SharePoint 插件示例。

引言

最近我开始探索在 SharePoint Add-In(以前称为 SharePoint Apps)中使用 SharePoint REST API 框架。微软提供了一些不错的文档页面,但找到一个简单的实用示例却颇具挑战。我想要的是一个完整的项目,其中包含逐步说明,说明如何使用 SharePoint 2013 中的跨域库从您的 Add-In 访问 SharePoint 网站中的数据。

背景

如前所述,本文和示例使用了 MSDN 中找到的信息

使用跨域库从 Add-In 访问 SharePoint 2013 数据

使用 SharePoint 2013 REST 端点完成基本操作

注意: 对于我的示例,我使用了 Visual Studio 2015 和一个包含名为 Movies 的列表的 SharePoint 365 站点。

重要提示: 该站点已启用 旁加载功能。

项目设置

您可以下载我的项目,但在构建您自己的项目时,您需要以下步骤进行初始设置

步骤 1: 在 Visual Studio 新建项目窗口中,选择 App for SharePoint

对于我的示例,我将项目命名为 spRestExample

步骤 2: 输入您的 SharePoint 站点的地址。选择 SharePoint-Hosted 作为您希望托管应用程序的方式。

步骤 3: 指定目标 SharePoint 版本

您将得到像这样一组解决方案文件(在 VS 2015 中)

此时,点击运行会打开我们的站点,并显示我的用户名(App.js 文件中的 javascript 结果)

步骤 4: 双击 AppManifest.xml 文件,并像这样设置 SharePoint 权限

 

添加代码

双击 App.js 文件,并删除其中的所有内容。

用这段代码替换它

<formatted>

'use strict';

$(document).ready(function () {

    var hostweburl;
    var appweburl;

    //The SharePoint site where the App is installed
    hostweburl = decodeURIComponent(getQueryStringParameter('SPHostUrl'));
    //The location within the site where the App will be deployed
    appweburl = decodeURIComponent(getQueryStringParameter('SPAppWebUrl'));

    // resources are in URLs in the form: web_url/_layouts/15/resource
    var scriptbase = hostweburl + "/_layouts/15/";
    $.getScript(scriptbase + "SP.RequestExecutor.js", execCrossDomainRequest);

    // Use cross-domain library to interact with more than one domain
    //in your remote add-in page through a proxy
    function execCrossDomainRequest() {
        var executor = new SP.RequestExecutor(appweburl);
    }

    $("#showButton").click(function () {

        var executor = new SP.RequestExecutor(appweburl);
        executor.executeAsync(
            {
                url: appweburl + "/_api/SP.AppContextSite(@target)/web/lists/getbytitle('Movies')/Items?@target='"
                    + hostweburl + "'",
                method: "GET",
                headers: { "Accept": "application/json; odata=verbose" },
                success: successHandler,
                error: errorHandler
            }
        );

    });

});

function successHandler(data) {

    var jsonObject = JSON.parse(data.body);
    var moviesHTML = "";
    var results = jsonObject.d.results;
    for (var i = 0; i < results.length; i++) {
        moviesHTML = moviesHTML + "<p><h3>" + results[i].Title + "</p><hr>";
    }

    document.getElementById("resultsDiv").innerHTML = moviesHTML;
}

function errorHandler(error) {
    $("#resultsDiv").append(error.statusText)
}

//function to get a parameter value by a specific key
function getQueryStringParameter(urlParameterKey) {
    var params = document.URL.split('?')[1].split('&');
    var strParams = '';
    for (var i = 0; i < params.length; i = i + 1) {
        var singleParam = params[i].split('=');
        if (singleParam[0] == urlParameterKey)
            return decodeURIComponent(singleParam[1]);
    }
}

</formatted>

 

Default.aspx 文件中,在 <asp:Content> 标签之间添加此代码

<div>
         <input id="showButton" type="button" value="Show Movies2" />
    </div>

    <div id="resultsDiv">
    </div>

 

现在您可以准备运行该项目了。第一次运行此项目时,系统将提示您信任此新应用程序。选择您的列表名称(在本例中为 Movies),然后单击 信任它

 

您将看到您的页面,其中包含新的 显示电影 按钮。

 

点击按钮现在将显示所有电影标题

在您的站点中使用该项目

如果您想在您自己的 SharePoint 站点上运行我的项目,您需要更改站点 URL。您可以在“属性”窗口打开的情况下选择项目来找到此属性

 

 

 

 

© . All rights reserved.