怎么判断有人在 X 上拉黑了你(以及为什么没有工具能列出名单)

19 min readSocialAPI 工程团队

怎么判断有人在 X 上拉黑了你(以及为什么没有工具能列出名单)

你怀疑有人拉黑了你。他的推文从你的时间线上消失了,或者别人发你的一个链接打不开。

有两件事同时成立,值得先说清楚:

  1. 你可以确定无疑地检查某一个具体账号。 这部分很简单。
  2. ★没有任何东西能给你一份"谁拉黑了你"的完整名单。★ 工具不行、接口不行、付费服务也不行。那份数据以任何你能触及的形式都不存在。

而人们花钱买的恰恰是第二件事,所以值得好好解释。


检查某一个具体账号

登录状态下访问 x.com/他的用户名,然后看你看到什么:

你看到的 意味着什么
"你已被 @X 拉黑,无法关注或查看其推文" 被拉黑了。明确无疑。
"此账号不存在" 已删除、被封、或者改了用户名
"这些推文受保护" 受保护账号,不是拉黑 —— 你只是没被批准
正常的资料页 没被拉黑

★决定性的测试:★ 退出登录(或用无痕窗口)打开同一个资料页。如果退出登录能正常打开、登录时却显示被拉黑,那就是拉黑 —— 因为差别完全在于是谁在问。

如果登录和退出登录都打不开,那是这个账号没了,而不是它拉黑了你。要在一批账号里同时区分“已消失”和“还在”,那是一个公开数据问题 —— 而拉黑不是。


为什么没有名单,以及为什么这是刻意的

X 会给你看你拉黑的账号。它从不给你看谁拉黑了你。

这是一个设计决定,不是疏漏。 拉黑作为一个安全功能存在。如果被拉黑的人能收到通知、或者能拉出一份名单,那么拉黑本身就变成了一个发给"它本要防范的那些人"的信号,安全价值随之崩塌。

★每一个"看谁拉黑了你"的工具都在用以下三种方式之一绕过这个缺失,而三种都很糟:★

1. 它管你要账号凭据。 然后它以你的身份登录去逐个检查资料页。你为了一个面子上的答案,把账号权限交给了第三方。 这是最糟的一种,也是最常见的一种。

2. 它检查一个很小的名单然后猜。 它测试少数几个你互动过的账号并报告结果。就这一点而言没问题,但它找不到那些不在你名单上的人的拉黑 —— 而那是绝大多数。

3. 它把粉丝数下跌报告成拉黑。 人们一直在取关、停用、被封、以及在机器人清理中被扫掉。把这些波动归因于拉黑,会产生自信而错误的答案。

⚠️ ★任何为了回答这个问题而索要你 X 密码或授权会话的东西,都是一笔糟糕的交易。★ 这个答案的价值不足以抵得上账号权限,而账号权限恰恰是"以你的名义执行操作"所需要的东西。


把拉黑和其它可能区分开

大多数"我被拉黑了"的情况最后都是别的原因。先排除掉这些:

停用。 已停用的账号对所有人都显示"不存在"。退出登录检查一下 —— 如果那边也没了,这事与你无关。

封禁。 表现和删除一样。同样是普遍的,不是针对你的。

改了用户名。 账号好好的,只是你手里的链接过期了。搜他的显示名 —— 见用户名变了怎么找回账号。

静音(Mute)。 他的推文不再出现在你的信息流里,但资料页能正常打开。★静音是隐形的,完全没有任何可检测的特征。★

只是没发帖。 有时候最简单的解释就是对的。

信息流排序变化。 时间线排序一直在变。某个账号从你信息流里消失,几乎不能说明任何问题。

★关键区分:拉黑是针对个人的、可检测的;停用和封禁是普遍的,而且在你退出登录检查之前,它们看起来和拉黑一模一样。★


被拉黑时到底发生了什么

值得知道,因为它解释了你能观察到什么、观察不到什么:

  • 登录状态下你无法查看他的资料页或推文
  • 你无法关注他;双向的既有关注关系都会被移除
  • ★关注是被永久移除的★ —— 即使他之后取消拉黑,两边的关注都不会回来。所以拉黑再取消拉黑的人,实际上是强制取关了你
  • 在你能看到的对话串里,他的回复会变成隐藏或显示为不可用
  • 退出登录后你仍然能看到他的推文,因为拉黑作用于账号而不是内容

最后这一点正是无痕测试有效的原因,也说明拉黑关乎的是"互动"而不是"保密"。被拉黑者看不到的内容,依然是公开的,只是对那一个账号不可见。这也是为什么一个只读数据接口能正常看到拉黑了你的账号 —— 它本来就从未以你的身份登录过。


用代码检查一批账号

如果你有具体的一批账号要查 —— 而且是出于正当理由,比如审计自己的触达 —— 那么可用的信号是"在没有登录会话的情况下,一次资料查询返回什么":

import requests

BASE = "https://api.socialapi.tech"
KEY  = "your_api_key"
HDRS = {"X-API-Key": KEY}

def profile_status(username):
    """账号的公开可见性。注意:这**无法**检测针对*你*的拉黑 ——
    它读的是公开数据,不是你登录后看到的视图。"""
    r = requests.get(f"{BASE}/v1/user/info",
                     params={"username": username},
                     headers=HDRS, timeout=60)

    if r.status_code == 404:
        return "已消失"          # 删除、被封或改名
    r.raise_for_status()

    data = r.json()["data"]
    return "受保护" if data.get("protected") else "公开"

for handle in ["nasa", "esa", "some_account"]:
    print(f"@{handle:<16} {profile_status(handle)}")

⚠️ 诚实说明它能做什么、不能做什么: 这告诉你一个账号是公开的、已消失的、还是受保护的。★它无法告诉你那个账号有没有拉黑你★,因为拉黑是相对于你的登录会话而言的,而数据接口读的是公开数据 —— 它并没有以你的身份登录。

★任何声称自己的接口能检测"谁拉黑了你"的服务,都是在用你的凭据做这件事。 不存在第二种机制。★ 在你注册任何东西之前,这一点值得知道。

这个检查真正有用的用法,是在一批账号里把"已消失"和"还在"分开 —— 而那回答的是一个常见得多的问题:粉丝数为什么掉了。那部分见粉丝追踪。


大家会问的问题

怎么知道有人在推特上拉黑了我? 登录状态访问他的资料页。如果显示"你已被拉黑,无法关注或查看其推文",那就是拉黑。

能看到拉黑了我的所有人的名单吗? 不能。 那份数据以任何形式都不对你开放,没有工具能在不拿到你账号凭据的情况下生成它。

那些显示谁拉黑了你的 App 有用吗? 它们要么需要你的账号权限,要么只检查一个很小的预设名单,要么把取关误报成拉黑。没有一个能做到名字承诺的事。

有人拉黑我时推特会通知我吗? 不会。你是在尝试查看他资料页时才发现的。

拉黑和静音有什么区别? 拉黑是双向的,而且你一查就能看出来。静音是单向且完全隐形的 —— 没有任何办法检测。

被拉黑的人能看到我的推文吗? 用那个被拉黑的账号登录时看不到。退出登录后你的公开推文对任何人依然可见。

拉黑某人后关注关系会怎样? 双向的关注立即被移除。

如果他取消拉黑,我们还互相关注吗? 不会。 关注在拉黑时被永久移除,取消拉黑不会恢复。

我的粉丝数为什么突然掉了? 比起拉黑,取关、停用或一次机器人清理的可能性大得多。正确地追踪它能区分这些。

能用接口看谁拉黑了我吗? 不能。拉黑是相对于登录会话的,而数据接口读的是公开数据。

怎么查看拉黑了我的人的资料页? 退出登录看,或者用无痕窗口。内容依然是公开的。

拉黑会删掉他的回复吗? 他的回复对你变成隐藏。对其他所有人并没有被删除。

别人能知道我拉黑了他吗? 能,如果他去看你的资料页 —— 会显示被拉黑的提示。没有通知,但是可发现的。

黑名单(block list)是什么? 是你拉黑的账号列表,在 设置 → 隐私与安全 里。它正好是人们通常想要的那个的反面。

能导出我的黑名单吗? X 支持通过界面导入和导出你自己的黑名单。

拉黑某人会让我的推文从搜索里消失吗? 不会全局消失。你的推文仍然公开,只是那一个账号登录时看不到。

为什么有人没拉黑我,我却看不到他的推文? 可能是受保护、被你静音了、已停用,或者只是信息流排序。退出登录看他的资料页就能区分。

被拉黑的账号还算我的粉丝吗? 不算。拉黑会移除关注关系。

能拉黑一个没关注我的人吗? 能 —— 拉黑不需要任何既有关系。

我最多能拉黑多少人? 正常使用没有实际上限。

有办法批量拉黑吗? 黑名单导入可以处理批量。第三方批量拉黑工具需要账号权限,风险照旧。

怎么看谁拉黑了我? ★没有这样一份名单,而且永远不会有。★ 你只能用上面的方法一个一个查。

有推特拉黑检测器吗? 它们是一个一个查的,和你自己做的一模一样。 ★任何宣称能给出完整名单的工具,都是在推断或编造。★

怎么知道某人拉黑了我? 他的资料页退出登录能看到,登录状态看不到。 ★那个不对称就是信号★ —— 而且是唯一可靠的那个。

怎么查某个特定的人有没有拉黑我? 在退出登录的浏览器里打开他的资料页,和你登录状态下看到的做对比。

怎么拉黑一个人? 从他资料页的菜单里操作。 ★我们是只读的,不能替你拉黑、解除拉黑或静音。★

怎么看谁在推特上拉黑了我? ★没有这样一份名单,而且不会有。★ 你只能用退出登录对比法,一个账号一个账号地查。

怎么知道某人拉黑了我? 他的资料页退出登录能加载,登录状态不能。 ★那个不对称就是信号。★

怎么查谁拉黑了我? 一次查一个。 ★任何提供完整名单的工具,都是在推断或编造。★

怎么看谁在屏蔽我? 同一个方法 —— ★平台不公布这个,所以没人能把名单交给你★。

怎么找出在推特上拉黑我的人? 去查你怀疑的那几个具体账号。 ★发现做不到;验证做得到。★

怎么确认某人有没有拉黑我? 在无痕窗口打开他的资料页,和你登录状态下看到的对比。

有推特拉黑检测器吗? 它们自动化的是同一个"一次一个"的检查。 ★没有一个能拿到名单。★

怎么区分是被拉黑了还是对方注销了账号? ★注销的账号对所有人都不存在,包括退出登录时★ —— 那就是区分它们的测试。

被拉黑会通知我吗? 不会。 ★拉黑在设计上就是静默的。★

被拉黑后还能看他的推文吗? 能,退出登录看 —— ★拉黑作用于账号,不是内容★。

被拉黑后还能搜到他的帖子吗? 退出登录一般可以。 ★拉黑作用于你的会话。★

拉黑会移除已有的粉丝关系吗? 会 —— 拉黑会双向移除关注关系。

软拉黑是什么? 先拉黑再立即解除 —— ★它把对方作为粉丝移除,而不留下持续的拉黑★ —— 不拉黑地移除。

能批量查拉黑吗? ★只能一个一个查。★ 不存在批量方法,因为不存在一份可供批量比对的名单。


诚实的结论

查一个账号: 登录看一次、退出登录再看一次。十秒钟,而且是决定性的。

要一份完整名单: ★它不存在,而任何声称能提供它的东西,都想拿你的账号凭据换一个猜测。★

如果你真正想搞清楚的是触达或粉丝数为什么变化,那是另一个问题,而且是可以回答的。我们的 API 读取公开数据 —— 资料、粉丝、推文、互动 —— 所以你能追踪到底什么真的变了。它是只读的,永远不会以你的身份登录,而这恰恰就是它无法回答拉黑问题的原因 —— ★而我们宁可这么说,也不卖给你一个猜测。★

延伸阅读:追踪粉丝与取关 · 用户名变了怎么找回账号 · 不拉黑地移除一个粉丝。