【发布时间】:2021-07-06 06:30:57
【问题描述】:
我正在尝试从其链接中获取推文的元标记。我可以使用名为html-metadata-parser 的模块获取元标记。我的问题是当我查看 Twitter 的元标签时,我在推文上看不到图像标签。但是当我在 Discord、Instagram 和 Whatsapp 等聊天中发布链接时,它也向我展示了 Tweet 的图像。有谁知道如何获取预览图片的链接?
require('dotenv').config();
const router = require('express').Router();
const Meta = require('html-metadata-parser');
const axios = require('axios');
const Jimp = require('jimp');
router.post('/webhooks/discounts', async (res, req) => {
const { link, provider, oauth } = req.body;
if (
oauth === process.env.IFTTTOAUTH
) {
var response = await Meta.parser(link);
const metaTags = JSON.stringify(response, null, 3);
let hasImage;
let ProviderNameURL;
await metaTags.og.images[0] ? hasImage = true : hasImage = false;
provider === "Steam" ? ProviderNameURL = "steam" : provider === "Ubisoft" ? ProviderNameURL = "ubisoft" : provider === "EpicGames" ? ProviderNameURL = "epic_games" : provider === "GOG.com" ? ProviderNameURL = "gog_com" : provider === "Humble Bundle" ? ProviderNameURL = "humble_bundle" : "unknown";
const text = await metaTags.og.description;
const image = hasImage === true ? await metaTags.og.images[0].url : null;
const icon = `https://cdn.syfac.xyz/images/game_markets/${ProviderNameURL}.png`;
const urlToDiscount = link;
try {
axios.post(requesterURL, {
text,
image,
provider,
icon,
urlToDiscount,
hasImage,
})
} catch (err) {
console.log(err)
}
} else {return;}
})
module.exports = router;
这是我的代码。 og:image 不是我要找的,因为它代表个人资料图片。
当我检查 Twitter 的元标签时,我看到一个带有 preconnect 的链接标签和一个带有 dns-prefetch 的链接标签,它们都转到 //pbs.twimg.com,当我从 Discord 中的嵌入中检查 şmage 源时,它是一个来自 pbs.twimg.com 的链接,所以我认为我有一些进展,但我仍然不知道如何获取图像。
【问题讨论】:
-
您正在寻找的是“og:image”吗?另外,如果您提供您的代码和一些结果会很有帮助
-
@mertdökümcü 当我检查 Twitter 的元标签时,我看到了 og:image,但那是创建推文的用户的个人资料图片。我将编辑我的问题并添加我的代码。
-
刚刚发布了一个可能的解决方案。希望它有效。我认为您需要使用 Twitter API。
标签: javascript twitter meta-tags tweets