我试图修改node.js快速入门示例以生成用户的Excel文档列表,但我遇到了问题。
此查询在Graph Explorer中起作用(返回非空结果):
https://graph.microsoft.com/v1.0/me/drive/root/search(q='.xlsx')?select=name,id,webUrl
我尝试了一些方法在graphHelpers.js中重现它。 此查询返回空结果:
function getExcelDocs(accessToken, callback) {
// Get list of excel docs in the user's onedrive
request
.get("https://graph.microsoft.com/v1.0/me/drive/root/search(q='.xlsx')?select=name,id,webUrl")
.set('Authorization', 'Bearer ' + accessToken)
.end((err, res) => {
// Returns 200 OK and the search result in the body.
callback(err, res);
});
}
如果我用驱动子项查询替换搜索URL,我会收到一组非空文档。
.get('https://graph.microsoft.com/v1.0/me/drive/root/children')
我是如何格式化查询网址的?
答案 0 :(得分:0)
URI中的parens导致此处出现问题。这些parens中的内容代表请求的body
。处理此请求的基础库(SuperAgent)似乎不喜欢它们直接进入URI。
我相信您可以通过单独提供网址组件来解决此问题:
request
.get("https://graph.microsoft.com/v1.0/me/drive/root/search", "q='.xlsx'")
.query({ select: 'name,id,webUrl'})
.set('Authorization', 'Bearer ' + accessToken)
.end((err, res) => {
// Returns 200 OK and the search result in the body.
callback(err, res);
});
或者,这可能也有效:
request
.get("https://graph.microsoft.com/v1.0/me/drive/root/search")
.query({ select: 'name,id,webUrl'})
.send("q='.xlsx'")
.set('Authorization', 'Bearer ' + accessToken)
.end((err, res) => {
// Returns 200 OK and the search result in the body.
callback(err, res);
});