【问题标题】:Get documents created by current user with SharePoint Online Search REST API使用 SharePoint Online Search REST API 获取当前用户创建的文档
【发布时间】:2017-06-13 11:04:18
【问题描述】:

我需要获取当前使用 rest api 登录到 SharePoint Online 的用户修改/创建的文档。我能够获取所有创建的文档,但是,我缺少检索当前登录用户并将其添加到其余查询的逻辑。我的代码:

<script type="text/javascript" src="https://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.9.1.min.js"></script>
<div id="mydocuments"></div>
<script type="text/javascript">
var startrow = '&startrow=0'
var rowlimit = '&rowlimit=3'

var userName = "";

var searchQuery = _spPageContextInfo.webAbsoluteUrl + "/_api/search/query?&sourceid='e7ec8cee-ded8-43c9-beb5-436b54b31e84'" + "&refinementfilters='displayauthor:equals(\"" + userName + "\")'"

$.ajax({
    url: searchQuery,
    method: 'GET',
    headers: {
        'Accept': 'application/json; odata=verbose'
    },
    success: onQuerySuccess,
    error: onQueryFail
});

function onQuerySuccess(data) {
    var items = [];

    items.push("<span id='cardtitle'>" + 'My documents ' + "</span>");
    if (data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results.length == 0) {
        items.push("<p>" + 'No results were found' + "</p>");
    } else {
        $(data.d.query.PrimaryQueryResult.RelevantResults.Table.Rows.results).each(function() {
            var path = keyValue(this, 'Path');
            var title = keyValue(this, 'Title');
            items.push('<li id="' + 'listContent' + '">' + '<img src="/_layouts/15/images/icdocx.png" class="projects" />' + ' <a href="' + path + '">' + title + '</a>' + '</li>');
        });

        items.push("</ul>");
        $("#mydocuments").html(items.join(''));
    }
}

function keyValue(row, fldName) {
    var ret = null;
    $.each(row.Cells.results, function() {
        if (this.Key == fldName) {
            ret = this.Value;
        }
    });
    return ret;
}

function onQueryFail(sender, args) {
    alert('Query failed. Error:' + args.get_message());
}

</script>

所以目前我无法弄清楚如何将当前用户名添加到此代码中。

【问题讨论】:

    标签: rest sharepoint sharepoint-online sharepoint-search sharepoint-jsom


    【解决方案1】:

    _spPageContextInfo 中有一个属性userDisplayName,不幸的是它没有记录在案 (wiki/docs)。有些人注意到了这些变化:Updates to _spPageContextInfo

    所以:

    userName = _spPageContextInfo.userDisplayName
    

    【讨论】:

      猜你喜欢
      • 2018-03-01
      • 1970-01-01
      • 2011-05-04
      • 1970-01-01
      • 2018-12-17
      • 1970-01-01
      • 2021-12-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多