Skip to content

favorites ​

收藏夹。上游 all_fav 固定返回登录账号的收藏,与传入的 uid 无关。

方法返回分页访客
listFavorites(uid, options?)FavoritePageResultpage不可用
streamFavorites(uid, options?)ITweet 流page不可用
getTags()FavoriteTagList-不可用
fetchRawFavorites(uid, page?)FavoritesResponsepage不可用
fetchRawTags()FavoritesTagsResponse-不可用

访客调用抛 AUTH_SESSION_EXPIRED(context.requiredAuth = 'cookie')。详见 访客限制。

listFavorites(uid, options?) ​

归一化一页收藏,支持客户端标签过滤:

选项类型说明
pagenumber页码,< 1 归一到 1
tagstring | number按标签 id 或名称精确匹配(基于收藏项自带 tags)

返回:

ts
interface FavoritePageResult {
  page: number          // 下一页页码
  hasMore: boolean      // 优先用 total_page,其次 total_number 估算
  total?: number
  totalPages?: number
  tweets: ITweet[]      // 已按 mblogId 去重,并应用 tag 过滤
}

streamFavorites(uid, options?) ​

ts
for await (const tweet of sdk.favorites.streamFavorites(uid, {
  tag: '技术',
  maxPages: 3,
  onProgress: progress => console.log(progress.page, progress.processed, progress.matched),
})) {
  console.log(tweet.mblogId, tweet.text)
}

选项:page、tag、maxPages、maxItems、onProgress。

停止条件:空页、整页重复、hasMore === false、maxPages / maxItems。标签过滤在客户端完成,processed 是过滤后的产出数,pageSize / matched 用于观察每页命中情况。

getTags() ​

返回归一化标签清单:

ts
interface FavoriteTagList {
  tags: FavoriteTag[]   // { id?, name? }
  total?: number
}

上游标签元素结构尚无公开样本:字符串 / 数字元素同时作为 id 与名称,对象元素读取常见键;无法识别 id 和 name 的条目会被跳过。需要原始响应时用 fetchRawTags()。

raw 入口 ​

fetchRawFavorites(uid, page?) / fetchRawTags() 返回上游 snake_case 响应;page < 1 归一到 1,避免上游 400。

错误与边界 ​

  • 归档其他 uid 时,includeFavorites 会抛 CONFIG_INVALID,数据始终属于登录账号。

CLI ​

bash
weibo-cli favorite list 1111681197
weibo-cli favorite stream 1111681197 --max-pages 2
weibo-cli favorite tags

只读公开数据;请遵守微博服务条款与隐私边界。