如何防止 Twitter API 中状态更新的自动链接预览生成?

问题描述

using Twitter API 以编程方式发布状态更新。 但是,当我的状态包含链接时,Twitter 会自动添加链接的预览。有时这不是我们想要的行为,但是,我没有在 API 中找到禁用它的属性

我知道我们可以在通过 Twitter 网站手动发布时删除链接预览,如此处 Remove Preview Image when Posting a Link on Twitter 所述,所以我怀疑这是可能的,但 API 从未提及它。

此外,我正在为 Python 使用 @Composable fun VisibilityAnimationFAB() { var expanded by remember { mutableStateOf(true) } FloatingActionButton( onClick = { expanded = !expanded },modifier = Modifier ) { Row(Modifier.padding(start = 16.dp,end = 16.dp)) { Icon( vectorResource(id = R.drawable.ic_twitter),Modifier.align(Alignment.CenterVertically) ) AnimatedVisibility( expanded,modifier = Modifier.align(Alignment.CenterVertically) ) { androidx.compose.material.Text(modifier = Modifier.padding(start = 8.dp),text = "Tweet") } } } } 库,但如果能解决我的问题,我很乐意求助于原始 tweepy

我应该在请求中添加什么来阻止链接预览生成

解决方法

我实际上尝试在网络上手动发帖到 Twitter,两次:

  1. 使用生成的链接预览
  2. 显式删除预览(生成预览后单击十字按钮)

在执行此操作时,我观察了网站发送到 Twitter 服务器的负载(使用 Chrome 开发工具)。

有趣的是,这两条推文之间的唯一区别只有一个属性:card_uri: tombstone://card。更具体地说,此属性出现在没有预览的推文中

在那之后,我实际上尝试将 card_uri 属性添加到我的状态更新请求中,它确实完成了工作:未自动呈现预览。

方便的是,tweepy 库在 card_uri 方法中有一个可选的 update_status 参数。

总而言之,您需要在请求中设置 card_uri='tombstone://card' 以防止 Twitter 自动生成链接预览。

不幸的是,我在 API(或根本没有在 Google 中)中没有找到任何对此的引用,所以我不相信这是一个持久的解决方案,但这至少是一个开始.