Discord.js机器人调用Tenor API时GIF富嵌入无法正常显示问题
问题根因
Post.itemurl是Tenor的GIF分享网页链接,不是GIF资源直链,Discord embed的image字段仅支持直接的资源文件链接,因此无法识别加载。- 之前尝试访问
Post.media[0].itemurl报错,是因为tenorjs返回的媒体结构中没有itemurl属性,正确的GIF直链存储路径为Post.media[0].gif.url。
修复代码
只需要修改embed中image的url取值即可:
Tenor.Search.Query(msgArgs, "1").then(Results => { Results.forEach(Post => { // 遇到异常时可打开注释打印结构确认取值路径 // console.log(Post.media[0].gif) message.channel.send({ embed: { title: 'Women', color: 'c20d00', image: { url: Post.media[0].gif.url, }, }, }) }); }).catch(console.error);
补充说明
如果修改后仍然报错,可以先把Tenor初始化配置里的MediaFilter从minimal改为basic,再打印Post.media查看返回结构,确认gif直链的取值路径即可。
内容的提问来源于stack exchange,提问作者Tachanks
相关产品推荐
相关产品推荐

