使用NodeJS / Express API为Facebook og:image标签返回base64图像

时间:2019-01-10 09:23:58

标签: node.js express facebook-graph-api

我创建了一个node / express API,以将base64数据作为图像返回。

使用https://www.example.com/api/resident/59dbd52a7604450012c390ac/image可以很好地加载图像 我一直在前端的各个页面中使用此图像。

问题是,当我尝试将这些数据用于Facebook上的og:image标签时,出现错误: “提供的og:图片URL https://www.example.com/api/resident/59dbd52a7604450012c390ac/image由于内容类型无效,因此无法作为图片处理。”

我知道Facebook可以看到正确的元标记,因为当我单击“确切地看到我们的抓取工具为您的URL看到的内容”时,它显示了正确的标记。当我单击提供的URL时,它将显示图像。

express中的控制器如下:

export function image(req, res) {
  var base64Data = req.resident.picture;
  var img = new Buffer(base64Data, 'base64');
  res.writeHead(200, {
    'Content-Type': 'image/jpeg',
    'Content-Length': img.length
  });
  return res.end(img);
}

HTML中的标签如下:

<meta property="og:title" content="My Site">
<meta property="og:image" content="https://www.example.com/api/resident/59dbd52a7604450012c390ac/image">
<meta property="og:image:type" content="image/jpeg">
<meta property="og:image:height" content="800">
<meta property="og:image:width" content="800">

0 个答案:

没有答案