instagram-private-api 响应类型详解:HighlightsRepositoryHighlightsTrayResponseUser_dict 高亮聚合用户信息接口

发布时间:2026/10/15 21:05:27
instagram-private-api 响应类型详解:HighlightsRepositoryHighlightsTrayResponseUser_dict 高亮聚合用户信息接口 后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载本篇技术指南围绕 instagram-private-apiNodeJS Instagram private API SDK中HighlightsRepositoryHighlightsTrayResponseUser_dict接口展开它描述了「高亮故事聚合Highlights Tray」接口返回的完整用户档案对象结构。读完本文你将掌握该接口 21 个字段的逐一含义与类型、其在highlightsTray()调用链中的位置、嵌套对象biography_with_entities与friendship_status的详细结构以及如何在 TypeScript 项目中读取与使用这些数据。接口定位来自哪一次 API 调用HighlightsRepositoryHighlightsTrayResponseUser_dict不是独立存在的响应体而是HighlightsRepository.highlightsTray(userId)方法返回的根响应对象HighlightsRepositoryHighlightsTrayResponseRootObject内部嵌套的一个子对象。该方法定义于 src/repositories/highlights.repository.ts向 Instagram 私信/私域 API 发送一次 GET 请求public async highlightsTray(userId: string | number): PromiseHighlightsRepositoryHighlightsTrayResponseRootObject { const { body } await this.client.request.sendHighlightsRepositoryHighlightsTrayResponseRootObject({ url: /api/v1/highlights/${userId}/highlights_tray/, method: GET, qs: { supported_capabilities_new: JSON.stringify(this.client.state.supportedCapabilities), phone_id: this.client.state.phoneId, battery_level: this.client.state.batteryLevel, is_charging: Number(this.client.state.isCharging), will_sound_on: 0, }, }); return body; }调用链如下ig.highlights.highlightsTray(userId)→ 向https://i.instagram.com/api/v1/highlights/{userId}/highlights_tray/发起 GET 请求 → 返回根对象RootObject→ 其中tv_channel.user_dict即本文主题。也就是说user_dict承载的是与用户 IGTV 频道关联的完整用户档案信息与tray数组中每个高亮条目所携带的简化版user对象HighlightsRepositoryHighlightsTrayResponseUser形成互补。根响应对象的嵌套关系从 src/responses/highlights.repository.highlights-tray.response.ts 可以看到完整的嵌套结构HighlightsRepositoryHighlightsTrayResponseRootObject ├── tray: HighlightsRepositoryHighlightsTrayResponseTrayItem[] // 高亮聚合条列表 ├── show_empty_state: boolean ├── tv_channel: HighlightsRepositoryHighlightsTrayResponseTv_channel │ ├── id: string │ ├── items: HighlightsRepositoryHighlightsTrayResponseItemsItem[] │ ├── more_available: boolean │ ├── seen_state │ ├── title: string │ ├── type: string │ ├── max_id: null │ └── user_dict: HighlightsRepositoryHighlightsTrayResponseUser_dict // ← 本文主角 └── status: string因此在实际使用中访问路径为response.tv_channel.user_dict。字段全览21 个属性的类型与含义HighlightsRepositoryHighlightsTrayResponseUser_dict定义于 src/responses/highlights.repository.highlights-tray.response.ts共 21 个属性按其语义可分为四组。身份与基础信息属性类型说明pknumber用户的数字 IDInstagram 用户主键可用于后续ig.feed.user(pk)、ig.user.info(pk)等调用usernamestring用户唯一用户名如example去掉 full_namestring用户展示名昵称is_privateboolean是否为私密账号is_verifiedboolean是否通过官方认证蓝 Vhas_anonymous_profile_pictureboolean是否使用系统默认匿名头像其中pk是整组数据中复用价值最高的字段拿到它即可继续调用ig.highlights.highlightsTray(pk)递归获取该用户的高亮聚合或结合ig.feed.user(pk)拉取时间线内容。注意pk为number类型而 Instagram 的数字 ID 在部分场景下可能超过Number.MAX_SAFE_INTEGER本仓库的请求层在 src/core/request.ts 中通过json-bigintstoreAsString: true对超长数字做字符串化处理理论上根响应中的超大数字会被转换为字符串因此实际运行时pk可能呈现为字符串形态类型声明与真实数据之间需要留意。头像与档案链接属性类型说明profile_pic_urlstring头像图片 URL通常为 CDN 地址可直接用于展示或下载profile_pic_idstring头像图片的媒体 ID可用于关联到具体媒体external_urlstring用户简介中挂载的外部链接如个人网站external_lynx_urlstringInstagram 包装跳转的 lynx 链接用于点击统计与安全过滤通常与external_url对应内容与互动统计属性类型说明media_countnumber已发布帖子总数geo_media_countnumber带地理位置标记的帖子数量follower_countnumber粉丝数following_countnumber关注数following_tag_countnumber关注的话题Hashtag数量latest_reel_medianumber最近一条 Reel快拍/Reels媒体的时间戳或计数total_igtv_videosnumberIGTV 视频总数需要说明的是latest_reel_media的类型声明为number但对比TrayItem.latest_reel_media以及同文件中User接口将latest_reel_media声明为null见 源码的情况可以推断该字段在不同上下文中可能返回时间戳或null使用时建议先做空值防御。简介与关系状态属性类型说明biographystring用户简介原始文本biography_with_entitiesHighlightsRepositoryHighlightsTrayResponseBiography_with_entities带实体标注的简介嵌套对象见下文has_biography_translationboolean是否存在简介翻译非母语简介可翻译时通常为 truefriendship_statusHighlightsRepositoryHighlightsTrayResponseFriendship_status当前登录账号与该用户的关注关系状态嵌套对象见下文嵌套对象一biography_with_entitiesbiography_with_entities定义于 src/responses/highlights.repository.highlights-tray.response.tsexport interface HighlightsRepositoryHighlightsTrayResponseBiography_with_entities { raw_text: string; // 简介纯文本与 biography 内容一致 entities: any[]; // 实体数组通常为空或包含简介中被识别为链接/提及的实体片段 }该结构源自 Instagram 服务端对简介文本的预解析raw_text保留原文entities理论上存放可点击的富文本片段如 URL、提及。但仓库中其类型被声明为any[]说明服务端返回结构多变、尚未被严格建模消费时建议对entities做Array.isArray校验并逐个防御性取值。嵌套对象二friendship_statusfriendship_status定义于 src/responses/highlights.repository.highlights-tray.response.tsexport interface HighlightsRepositoryHighlightsTrayResponseFriendship_status { following: boolean; // 当前登录账号是否已关注该用户 outgoing_request: boolean; // 是否存在待处理的外发关注请求 is_bestie: boolean; // 是否在密友Besties列表中 is_restricted: boolean; // 是否已被限制Restricted followed_by?: boolean; // 该用户是否关注了当前登录账号可选 blocking?: boolean; // 当前登录账号是否拉黑了该用户可选 muting?: boolean; // 是否已静音可选 is_private?: boolean; // 是否为私密账号可选 incoming_request?: boolean;// 是否存在待处理的入站关注请求可选 }其中following、outgoing_request、is_bestie、is_restricted为必填其余五个字段为可选Optional服务端在不同场景下可能省略。这一对象与FriendshipRepository.show()返回的关系信息同构可在无需额外请求的情况下直接获得当前登录账号与目标用户的关注关系用于实现「一键关注/取关」「显示密友标识」等业务逻辑。实战示例读取高亮聚合中的用户档案以下示例演示完整的调用与数据读取流程需要先初始化客户端并登录参考 README.md 与 session 示例import { IgApiClient } from instagram-private-api; const ig new IgApiClient(); ig.state.generateDevice(process.env.IG_USERNAME); // 登录后调用 await ig.account.login(process.env.IG_USERNAME, process.env.IG_PASSWORD); // 目标用户的数字 ID const userId 123456789; // 获取高亮聚合响应 const response await ig.highlights.highlightsTray(userId); // 1) tv_channel.user_dict完整用户档案 const userDict response.tv_channel.user_dict; console.log({ pk: userDict.pk, username: userDict.username, fullName: userDict.full_name, isPrivate: userDict.is_private, isVerified: userDict.is_verified, mediaCount: userDict.media_count, followerCount: userDict.follower_count, followingCount: userDict.following_count, bio: userDict.biography, profilePicUrl: userDict.profile_pic_url, igtvVideos: userDict.total_igtv_videos, }); // 2) 读取关系状态注意可选字段防御 const fs userDict.friendship_status; if (fs) { console.log(我是否已关注对方:, fs.following); console.log(对方是否关注我:, fs.followed_by ?? 未知); console.log(是否在密友列表:, fs.is_bestie); } // 3) 处理简介实体any[] 需要防御 if (Array.isArray(userDict.biography_with_entities.entities)) { userDict.biography_with_entities.entities.forEach((entity) { console.log(简介实体:, entity); }); } // 4) 结合 tray 继续遍历每个高亮条目 for (const item of response.tray) { console.log(高亮标题: ${item.title}封面: ${item.cover_media.cropped_image_version.url}); }运行前提项目需安装instagram-private-api并配置好登录凭证该接口属于私域 API登录状态失效时会抛出IgLoginRequiredError等错误见 src/errors。使用注意与边界响应根对象的status字段请求层在 src/core/request.ts 依赖body.status ok判定请求成功因此正常响应中根对象的status恒为ok异常时则抛出对应IgResponseError。与简化版User的区别tray[].userHighlightsRepositoryHighlightsTrayResponseUser仅包含 11 个基础字段且多数可选而tv_channel.user_dict是完整档案快照包含粉丝数、简介、关系状态等统计型数据适用于需要展示「用户主页信息」的场景。any[]与可选字段biography_with_entities.entities为any[]friendship_status中部分字段为可选真实响应可能缺省编写消费代码时必须做空值与类型防御。大整数风险pk、media_count等数值字段声明为number但仓库的请求层已将超长数字转为字符串类型与运行时数据可能存在偏差处理 ID 时建议统一按string | number对待。关联文档与源码索引接口文档HighlightsRepositoryHighlightsTrayResponseUser_dict.md嵌套对象biography_with_entities文档、friendship_status文档根对象与兄弟结构RootObject、Tv_channel、TrayItem源码定义src/responses/highlights.repository.highlights-tray.response.ts发起请求的仓库类src/repositories/highlights.repository.ts类文档见 docs/classes/repositories/HighlightsRepository.md响应类型统一由 src/responses/index.ts 从./highlights.repository.highlights-tray.response导出因此可以直接import { HighlightsRepositoryHighlightsTrayResponseUser_dict } from instagram-private-api作为类型注解使用。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 响应类型全解析DirectRepositoryCreateGroupThreadResponseFriendshipStatus 接口详解instagram private api 响应类型全解析DirectRepositoryCreateGroupThreadResponseFriendshi后端instagram-private-api 响应类型解析HighlightsRepositoryHighlightsTrayResponseCropped_image_version 接口全解instagram private api 响应类型解析HighlightsRepositoryHighlightsTrayResponseCropped_i后端instagram-private-api 高亮托盘响应接口 HighlightsRepositoryHighlightsTrayResponseItemsItem 全解析instagram private api 高亮托盘响应接口 HighlightsRepositoryHighlightsTrayResponseItemsIt后端上一篇Arrow Stack BOM 实战用一条 platform() 依赖统一管理 Arrow Kotlin 全系库版本下一篇we-cropper 完整上手指南在微信小程序里快速实现图片裁剪创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询