我正在尝试使用Microsoft Graph /photo获取Office 365联系人照片。我想在网页上显示这些图像。从api返回的响应包含每个图像的链接,但这些链接需要一个Bearer访问令牌,当我尝试访问这些链接时,我收到以下错误:
{
"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?有什么建议吗?
答案 0 :(得分:2)
对于可用的用户/群组/联系人照片,没有预先授权的URI。
相反,检索后端的图像并像普通图像资源一样将其提供给页面。除了删除身份验证问题之外,它还允许您将这些图像缓存一段时间,而不是每次都下拉。
另外,您可以将图片转换为base64并将其作为Data URI返回,您可以直接在<image>
标记中使用,如下所示:
<image src="data:image;base64,{data}" />
答案 1 :(得分:1)
您需要将授权标头添加到HTTP-Request
HeaderName:&#34;授权&#34;
内容:&#34;持票人&lt;令牌&gt;&#34;
您的请求消息将会显示出来。像这样
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有关Graph Auth Tokens
的更多信息