我正在尝试使用Microsoft Graph的/photo获取Office365联系人照片。我想在网页上显示这些图像。api返回的响应包含每个图像的链接,但是这些链接需要一个持有者访问令牌,当我尝试访问这些链接时,我得到了以下错误:
{
"error": {
"code": "InvalidAuthenticationToken",
"message": "Bearer access token is empty.",
}
}代码如下:
fetch("https://graph.microsoft.com/v1.0/me/contacts/" + item.id +
"/photo/$value", options).then(function (response) {
console.log("the response is", response);
}).catch(function (error) {
console.log("error : ", error);
});有没有办法将此令牌添加到API返回的URL中?有什么建议吗?
发布于 2018-02-14 01:28:04
没有可用的用户/组/联系人照片的预授权URI。
取而代之的是,在后端检索图像,并将其像普通图像资产一样提供给页面。除了消除身份验证问题外,它还允许您在一段时间内缓存这些图像,而不是每次都缓存。
或者,您也可以将图像转换为base64并将其作为Data URI返回,以便直接在<image>标记中使用,如下所示:
<image src="data:image;base64,{data}" />发布于 2018-02-14 01:00:31
您需要将Authorization标头添加到HTTP请求中
HeaderName:“授权”
内容:“持有者< token >”
您的请求消息看起来会有一些东西。像这样
fetch("https://graph.microsoft.com/v1.0/me/contacts/" + item.id + "/photo/$value", {
headers: {
'user-agent': 'Mozilla/4.0 MDN Example',
'content-type': 'application/json'
'Authorization' : 'Bearer <AuthToken>'
},
method: 'GET', // *POST, PUT, DELETE, etc.
})有关添加头部的详细说明,请参阅https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API/Using_Fetch
和https://developer.microsoft.com/en-us/graph/docs/concepts/auth_overview,了解有关图形身份验证令牌的更多信息
https://stackoverflow.com/questions/48771698
复制相似问题