问答

社媒接口返回的部分字段是空的,这样也要付钱吗?

简短回答

字段为空,要么是平台本身不公开这个数,要么是数据源暂时取不到;okdata 每次返回都会列出这些字段,并注明是哪一种原因。调用本身是成功的,所以照常计费,比如微博搜索每页 $0.002。围绕某个指标做报告之前,先做一次测试调用,看看这份清单。

报表模板里有一列分享数,结果一半是空的。先别急着怪数据,看看原因。用爬虫工具的人经常反馈数据缺失,原因通常就两种,okdata 在每次返回里都会写明。

两种原因

meta.unavailable 把每个为 null 的字段对应到一个原因:

  • platform:平台对谁都不公开这个数,任何接口都拿不到。微博不像抖音那样展示分享和收藏,TikTok 的帖子没有标题。
  • capability:平台在某处展示了,但这个接口背后的数据源暂时取不到,以后可能会变。公众号文章的阅读数就是值得先查一下的例子。

各平台的帖子、账号、评论用同一套字段名,缺的数就是 null,不会少一个键把你的解析代码弄崩。

curl -s -G "https://api.okdata.online/v1/weibo/posts/search" \
  -H "Authorization: Bearer $OKDATA_API_KEY" \
  --data-urlencode 'query=新品发布' | jq '.meta.unavailable'
# 例如 {"metrics.shares": "platform", "metrics.favorites": "platform", "title": "platform"}

要不要付钱

要。调用完成了,平台能提供的数据都返回了。价格按次算,不按字段算:

接口 价格
微博搜索 每页 $0.002
TikTok 视频详情 每条 $0.002
公众号文章详情 每篇 $0.02

错误则不同。内容不存在返回 not_found,不收费;数据源故障返回 upstream_failed,也不收费。

别为拿不到的数付钱

  1. 大任务开跑前,先调一次,看 meta.unavailable。报告依赖的指标如果在里面,就改报告或换平台,别在调用量上硬加。
  2. 看接口页面,上面列了每个接口返回哪些字段。
  3. 通过 MCP 接入的智能体,可以先免费调用 describe 看字段,再决定调不调。
  4. 用 fields= 去掉不需要的列。模型读结果时能省 token,调用费不变。

什么时候该换数据来源

platform 类的数字只有账号主人能在平台后台看到。自家账号,就去后台看。别人的账号,就挑各平台都公开的指标来比,比如点赞和评论数。按这个思路做跨平台对比,可以参考内容研究。

更新于