我需要使用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>
所以目前我无法弄清楚如何将当前用户名添加到此代码中。
答案 0 :(得分:2)
echo $s | \
sed 's/[^<]*<[^<]*<\([^<][^<]*\)<<[0-9]<[^<]*<<[^<]*[<>]*/|\1/g' | \
grep -oE '[^|]+'
中有一个属性userDisplayName
,遗憾的是它没有记录(wiki/docs)。有些人注意到了这些变化:Updates to _spPageContextInfo
所以:
_spPageContextInfo