Javascript InvalidAuthenticationToken正在获取联系人照片

Javascript InvalidAuthenticationToken正在获取联系人照片,javascript,microsoft-graph-api,Javascript,Microsoft Graph Api,我正在尝试使用Microsoft Graph获取Office 365联系人照片。我想在网页上显示这些图像。api返回的响应包含每个图像的链接,但这些链接需要承载访问令牌,当我尝试访问这些链接时,我遇到以下错误: { "error": { "code": "InvalidAuthenticationToken", "message": "Bearer access token is empty.", } } 代码如下: fetch("https:/

我正在尝试使用Microsoft Graph获取Office 365联系人照片。我想在网页上显示这些图像。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中?有什么建议吗?

您需要将授权标头添加到HTTP请求中

标题名称:“授权”

内容:“持票人<代币>”

您的请求消息将如下所示

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.
  })
fetch(“https://graph.microsoft.com/v1.0/me/contacts/“+item.id+”/photo/$value”{
标题:{
“用户代理”:“Mozilla/4.0 MDN示例”,
“内容类型”:“应用程序/json”
“Authorization”:“详细说明如何添加标题”


有关Graph Auth令牌的详细信息,还没有用户/组/联系人照片的预授权URI

取而代之的是,在后端检索图像并像普通图像资产一样将其提供给页面。除了消除身份验证问题外,它还允许您将这些图像缓存一段时间,而不是每次都将其删除

或者,您可以将图像转换为base64,并将其作为可直接在
标记中使用的格式返回,如下所示:

<image src="data:image;base64,{data}" />


感谢您的回复,您的意思是在后端也转换映像吗?您的意思是为每个映像添加另一个带有该令牌的请求吗?想法是将其卸载到您的服务器。在服务器上检索文件、将其转换为base64并返回数据URI比下载更简单、更高效,这是一个非常好的日志并在客户端将其转换到内存中。