3、用户信息接口:获取用户基本信息、获取用户粉丝列表、获取用户关注列表、用户关系分析

好,咱们今天聊聊抖音用户信息这块。

说实话,用户信息接口是我在抖音生态里用得最频繁的接口之一。为什么?因为不管是做用户画像、粉丝分析,还是搞精准营销,你都得先搞清楚「这个人是谁」。我刚开始做抖音数据时,就踩过不少坑——比如拿到的粉丝列表不全,或者关注列表里混了一堆营销号。嗯,今天我把这些经验都摊开来讲。

3.1 获取用户基本信息

先说说最基本的。抖音开放平台提供了 /user/info 这个接口。你传一个用户的 open_id 过去,它返回一堆信息。

返回的数据长这样:

{
  "open_id": "xxx",
  "nickname": "张三",
  "avatar": "https://...",
  "gender": 1,
  "country": "中国",
  "province": "广东",
  "city": "深圳",
  "follow_count": 1234,
  "follower_count": 56789,
  "total_favorited": 99999
}

这里有个细节——gender 字段。1 是男,2 是女,0 是未知。我遇到过不少新手直接拿这个字段做性别判断,结果发现大量用户是 0。为什么?因为很多用户没填性别。你想想看,抖音注册时性别不是必填项,所以这个字段的缺失率其实挺高的。

注意:用户基本信息中的 follow_count 和 follower_count 是实时数据,但 total_favorited 可能会有延迟。我曾在一次项目中用这个字段做排序,结果发现数据差了 2 小时。后来我改成了每天凌晨拉一次全量数据。

3.2 获取用户粉丝列表

粉丝列表接口是 /user/fans/list。这个接口有个特点——它分页返回,每页最多 100 条。

调用方式:

GET /user/fans/list?open_id=xxx&cursor=0&count=100

返回的数据里有个 has_more 字段,告诉你还有没有下一页。还有个 cursor 字段,是下一页的游标。

我个人习惯用 while 循环来拉取所有粉丝:

fans = []
cursor = 0
has_more = True

while has_more:
    resp = api.get_fans_list(open_id, cursor, 100)
    fans.extend(resp['data']['list'])
    has_more = resp['data']['has_more']
    cursor = resp['data']['cursor']
    # 加个延时,别把接口打挂了
    time.sleep(0.5)

这里有个坑——粉丝列表的排序。抖音返回的粉丝列表不是按关注时间倒序的,而是按某种「综合权重」排序。说白了,就是活跃度高的粉丝排前面。我做过对比测试,发现前 100 个粉丝的点赞、评论行为明显高于后面的。所以如果你要做抽样分析,别只取前几页,否则样本偏差会很大。

小技巧:如果你需要分析粉丝的活跃度,建议拉取全部粉丝数据。虽然慢一点,但数据完整。我曾经为了省时间只拉了前 1000 个粉丝做分析,结果报告被老板打回来了——因为样本偏差太大。

3.3 获取用户关注列表

关注列表接口是 /user/following/list。用法和粉丝列表基本一样,也是分页、游标。

但关注列表有个特殊的地方——它返回的是用户主动关注的人。这意味着你可以分析这个用户的兴趣偏好。比如一个美妆博主关注了大量化妆教程号,那她的内容偏好就很明显了。

我做过一个有意思的分析:对比一个用户的关注列表和粉丝列表,计算「关注/粉丝比」。如果这个比值大于 1,说明这个用户更倾向于「社交型」——他关注的人比关注他的人多。如果比值小于 0.1,那基本就是大 V 了。

关注/粉丝比 用户类型 典型特征
> 1 社交型用户 喜欢互动,关注大量同类账号
0.1 - 1 普通用户 关注和粉丝相对均衡
< 0.1 内容创作者/大V 粉丝远多于关注,内容输出型

嗯,这个分类虽然粗糙,但在实际项目中挺实用的。我帮一个品牌方做 KOL 筛选时,就用这个指标排除了大量「互关型」账号——那些账号粉丝数看着不少,但真实影响力其实很弱。

3.4 用户关系分析

用户关系分析,说白了就是搞清楚「谁和谁有关系」。抖音提供了 /user/relation 接口,可以查询两个用户之间的关系。

返回的关系类型有几种:

  • 0:无关系
  • 1:A 关注了 B
  • 2:B 关注了 A
  • 3:互相关注

这个接口在社交网络分析里特别有用。我做过一个项目,需要找出某个领域的「意见领袖」。做法很简单:先拉取一批头部用户的粉丝列表,然后两两计算关系。如果两个大 V 互相关注,说明他们属于同一个圈子。如果一个大 V 关注了另一个但对方没回关,那前者可能是后者的「粉丝型大 V」——影响力相对弱一些。

实战建议:用户关系分析不要只做单点分析。我建议你构建一个「关系图谱」——把用户、粉丝、关注者都当成节点,关系当成边。然后用图算法(比如 PageRank、社区发现)来挖掘核心用户。我在一次抖音营销活动中,用这个方法找到了 20 个「隐藏 KOL」——他们粉丝数只有 1 万左右,但在某个垂直领域的连接度极高。最终投放效果比找 10 万粉的大 V 还好。

最后说一句——接口调用频率有限制。抖音开放平台对用户信息接口的调用频率是 100 次/分钟。如果你要批量拉取大量用户数据,记得做好限流和重试机制。我曾经因为没注意这个限制,直接把一个测试账号的接口权限给封了,折腾了两天才恢复。

好了,用户信息接口这块就讲这么多。下一章咱们聊聊视频数据接口——那个更有意思,能挖出不少内容层面的洞察。