问答

Claude 或 AI 智能体怎么读取 x.com 推文链接的内容?

简短回答

别让智能体去打开 x.com 网页,给它一个按链接取帖子的工具:okdata 的 X 帖子详情收 x.com 或 twitter.com 的帖子链接,返回正文、媒体、浏览、点赞、转发和回复数,每次 $0.001。再查作者资料多花 $0.001,全程不需要 X 账号,也不用申请开发者应用。

你在 Claude Code 里贴了三条发布会帖子的链接,问大家在说什么、这几个账号是什么来头。网页抓取工具拿回来的不是登录墙就是一页空壳脚本,或者干脆说打不开,因为 x.com 对没登录的访客几乎什么都不给看。社区里常见的做法是写个脚本,借第三方镜像站转一道,镜像站一挂,脚本也跟着挂。更稳的办法,是给智能体一个工具:收链接,直接返回帖子数据。

两个接口就够

  • X 帖子详情:传 url(x.com 或 twitter.com 的帖子链接)或 id,返回正文、媒体、浏览、点赞、转发、回复数、语言、时间和作者。
  • X 账号信息:传用户名,返回粉丝数、关注数、发帖数、简介和认证情况。「这人是谁」通常看这些就够了。

接好 MCP 服务之后,在项目的 CLAUDE.md 里加一行,免得智能体每次先去试浏览器:

遇到 x.com 或 twitter.com 链接,不要用 WebFetch。用 okdata 的 call 工具,endpoint 填 x.posts.get,params 填 {"url": "<链接>"};查作者用 x.users.get,params 填 {"username": "<用户名>"}。

不用 MCP 客户端的话,一个链接就是一次 HTTP 调用:

import os
import requests

API = "https://api.okdata.online"
H = {"Authorization": f"Bearer {os.environ['OKDATA_API_KEY']}"}

def read_post(link):
    body = requests.get(API + "/v1/x/posts/get", headers=H, params={"url": link}, timeout=60).json()
    if body["code"] != "ok":
        return {"link": link, "error": body["code"], "message": body["message"]}
    post = body["data"]["item"]
    return {"text": post["text"], "author": post["author"]["username"],
            "likes": post["metrics"]["likes"], "views": post["metrics"]["views"],
            "published_at": post["published_at"]}

print(read_post("https://x.com/user/status/1850000000000000000"))

费用

任务 调用次数 费用
一条帖子 1 $0.001
一条帖子加作者资料 2 {{cost:x.posts.get1+x.users.get1}}
3 条帖子加 3 个作者 6 {{cost:x.posts.get3+x.users.get3}}
表格里的 1,000 个链接 1,000 $1.00

注意事项

  • 一个串推(thread)是好几条帖子,一个链接只对应其中一条。要么逐条取,要么用 X 帖子搜索搜 from:用户名,一页拿到作者最近发的内容。
  • 返回的是回复数,不是回复内容。
  • 已删除的帖子和锁了推的账号返回 not_found,不扣费。
  • 老帖子的浏览数可能为空,哪些字段为空、为什么,meta.unavailable 里都写着。
  • 只能取公开帖子。

其他路子

如果你还要发帖、回复,或者公司要求用有官方条款背书的数据源,X 官方 API 是对的选择,需要开发者账号,费用由 X 收取。借镜像站的脚本免费,自己用没问题,只是要接受它哪天说停就停。只看一条的话,把正文复制进对话框依然好用。

更新于