instagram-private-api 私信排名收件人响应:DirectRepositoryRankedRecipientsResponseThread 接口全解析
后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载DirectRepositoryRankedRecipientsResponseThread是 NodeJS 版 Instagram 私有 API SDKinstagram-private-apiTypeScript 编写中ranked_recipients接口响应里会话thread类型收件人的数据结构定义。本文将结合源码 direct.repository.ranked-recipients.response.ts 与仓储实现 direct.repository.ts逐一拆解该接口的 8 个字段语义、它在整体响应层级中的位置以及rankedRecipients()的完整调用链与实战解析方法帮助你在构建 DM 收发、消息推荐等能力时准确消费这一数据结构。一、接口在响应结构中的位置在rankedRecipients()返回的响应里DirectRepositoryRankedRecipientsResponseThread并非顶层结构而是嵌套在排名收件人列表中的一环。从 direct.repository.ranked-recipients.response.ts 的接口族定义可以看到完整层级export interface DirectRepositoryRankedRecipientsResponseRootObject { ranked_recipients: DirectRepositoryRankedRecipientsResponseRankedRecipientsItem[]; expires: number; filtered: boolean; request_id: string; rank_token: string; status: string; } export interface DirectRepositoryRankedRecipientsResponseRankedRecipientsItem { user?: DirectRepositoryRankedRecipientsResponseUser; // 用户型收件人 thread?: DirectRepositoryRankedRecipientsResponseThread; // 会话型收件人 }响应路径为RootObject └── ranked_recipients[] (RankedRecipientsItem) ├── user? → 单用户收件人 └── thread? → DirectRepositoryRankedRecipientsResponseThread本文主题RankedRecipientsItem中的user与thread均为可选字段当 Instagram 端判定某个排名收件人是一条已有会话时会填充thread否则填充user。因此DirectRepositoryRankedRecipientsResponseThread描述的是一个已存在的会话作为建议收件人时的完整快照包含会话 ID、参与者、会话性质标志与查看者视角等信息。二、接口字段逐项解析接口定义位于 direct.repository.ranked-recipients.response.ts共 8 个属性。类型与语义如下字段类型说明thread_idstring会话唯一标识 IDusersDirectRepositoryRankedRecipientsResponseUsersItem[]会话参与用户列表canonicalboolean是否为标准会话namedboolean是否为有名称的命名会话thread_titlestring会话标题pendingboolean是否为待处理pending会话thread_typestring会话类型viewer_idnumber当前查看者即登录用户的 PKthread_id会话唯一标识类型string语义Instagram Direct 中每一条会话都有全局唯一的thread_id例如340282366841710300949128155570712853946。用途后续针对该会话的操作如进入会话、发送消息、修改标题通常都需要它作为入参。在 direct.repository.ts 中createGroupThread()返回的DirectRepositoryCreateGroupThreadResponseRootObject同样携带会话标识二者体系一致。users会话参与者列表类型DirectRepositoryRankedRecipientsResponseUsersItem[]语义该会话包含的用户数组。其元素结构与响应中的DirectRepositoryRankedRecipientsResponseUser完全一致见第四节包括pk、username、full_name、is_private、profile_pic_url、is_verified等。用途判断这条推荐会话里都有谁常用于私聊单对单场景下定位唯一会话对象或在群聊中获取全部参与者画像。canonical标准会话标志类型boolean语义标记该会话是否为标准会话。从字段命名与组合语义可以推断canonical: true表示这是一条被 Instagram 认定为常规/正式形态的会话例如正常的单聊或群聊而非临时性的特殊会话。值得注意canonical是线程型收件人的重要判定条件之一配合named、pending等标志可以刻画会话的正规程度。named命名会话标志类型boolean语义标记该会话是否为有名称的会话。named: true通常对应群聊场景——群聊可以由成员自定义标题单聊一般不会被视为命名会话。用途在渲染收件人列表时可根据该字段决定展示逻辑命名会话展示thread_title未命名会话可能展示参与者姓名。thread_title会话标题类型string语义会话的显示标题。对于群聊该值通常为自定义的群名称对于单聊可能为空字符串或系统生成的占位标题。注意该字段值可能为空消费时应做空值兜底不能假设它一定非空。pending待处理会话标志类型boolean语义标记该会话是否处于待处理pending状态。pending: true表示会话尚在等待接受/审批例如收到来自陌生人的新消息请求、群邀请待确认此时会话内的互动能力可能受限。用途在收件人选择器中通常应过滤掉pending: true的会话避免向尚未建立的会话发起消息。thread_type会话类型类型string语义会话的类别标识。从类型定义看是自由字符串用于区分不同会话形态如私聊与群聊。具体取值应在运行时结合实际响应判断不建议在代码中硬编码未经验证的枚举值。从源码结构可以推断该字段与canonical、named共同构成会话形态的判定组合是判断推荐这条会话时用单聊 UI 还是群聊 UI的关键依据。viewer_id查看者 ID类型number语义当前查看者即发起rankedRecipients()请求的登录用户的数字 PKprimary key。用途作为响应中的自我身份参考可用于区分会话中哪些users项是自己、排除自己、或计算对方对象是单聊场景中定位对端用户的常用辅助字段。三、接口在响应中的示例形态综合各字段一条thread型排名收件人响应大致如下字段结构以源码定义为准值为示意{ ranked_recipients: [ { thread: { thread_id: 340282366841710300949128155570712853946, users: [ { pk: 1111111111, username: alice, full_name: Alice, is_private: true, profile_pic_url: https://..., profile_pic_id: 1234, is_verified: false, has_anonymous_profile_picture: false, is_directapp_installed: true, is_using_unified_inbox_for_direct: true }, { pk: 2222222222, username: bob, full_name: Bob, is_private: false, profile_pic_url: https://..., profile_pic_id: 5678, is_verified: true, has_anonymous_profile_picture: false, is_directapp_installed: true, is_using_unified_inbox_for_direct: false } ], canonical: true, named: true, thread_title: Project Group, pending: false, thread_type: group, viewer_id: 123456789 } } ] }四、users 字段详解users数组中的每一项为DirectRepositoryRankedRecipientsResponseUsersItem完整定义同样位于 direct.repository.ranked-recipients.response.ts。它与响应中的DirectRepositoryRankedRecipientsResponseUser定义见第 14-25 行字段完全一致字段类型说明pknumber用户数字 PK全库唯一usernamestring用户名full_namestring显示全名is_privateboolean是否私密账号profile_pic_urlstring头像 URLprofile_pic_idstring头像媒体 IDis_verifiedboolean是否认证蓝 V账号has_anonymous_profile_pictureboolean是否使用系统默认匿名头像is_directapp_installedboolean是否安装了 Direct 应用is_using_unified_inbox_for_directboolean是否使用统一收件箱处理 Direct 消息对应的接口文档可参阅 DirectRepositoryRankedRecipientsResponseUsersItem 文档 与 DirectRepositoryRankedRecipientsResponseUser 文档。其中is_directapp_installed、is_using_unified_inbox_for_direct这两个字段对于判断对方能否及时收到私信通知有一定参考价值可辅助消息投递策略例如对未安装 Direct 的用户提示对方可能看不到消息。五、如何拿到该接口rankedRecipients() 调用链该接口是DirectRepository.rankedRecipients()的返回体的一部分。方法实现位于 src/repositories/direct.repository.tspublic async rankedRecipients( mode: raven | reshare raven, query , ): PromiseDirectRepositoryRankedRecipientsResponseRootObject { const { body } await this.client.request.sendDirectRepositoryRankedRecipientsResponseRootObject({ url: /api/v1/direct_v2/ranked_recipients/, method: GET, qs: { mode, query, show_threads: true, }, }); return body; }关键请求细节接口地址GET /api/v1/direct_v2/ranked_recipients/mode参数取值raven默认或reshare用于控制排名收件人的推荐场景文档化的方法签名见 DirectRepository 类文档。query参数搜索关键词默认空字符串。传入用户名等关键字时服务端会返回过滤后的匹配收件人。show_threads参数固定为true即要求服务端在响应中返回会话型收件人——这正是DirectRepositoryRankedRecipientsResponseThread能出现在结果中的前提。返回体PromiseDirectRepositoryRankedRecipientsResponseRootObject其根级字段ranked_recipients、expires、filtered、request_id、rank_token、status文档见 RootObject 接口文档。客户端访问方式在IgApiClient上通过ig.direct.rankedRecipients()调用ig.direct即DirectRepository实例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); // 拉取 raven 模式排名收件人 const res await ig.direct.rankedRecipients(); for (const item of res.ranked_recipients) { if (item.thread) { // 会话型收件人直接消费 DirectRepositoryRankedRecipientsResponseThread const { thread } item; if (thread.pending) { console.log([skip] pending thread ${thread.thread_id}); continue; } const me res.ranked_recipients // viewer_id 定位 .map(r r.thread) .filter(Boolean) .find(t t.viewer_id ig.state.cookieUserId); console.log(thread: ${thread.thread_title || thread.thread_id}); console.log(participants: ${thread.users.map(u u.username).join(, )}); } else if (item.user) { // 用户型收件人DirectRepositoryRankedRecipientsResponseUser console.log(user: ${item.user.username}); } }六、实战场景登录后模拟流程中的应用该接口不仅在业务层被消费还深度参与了 SDK 自身的登录模拟流程。在 src/services/simulate.service.ts 的postLoginFlow()中登录成功后会自动并发调用两个模式的排名收件人接口() this.client.direct.rankedRecipients(reshare), () this.client.direct.rankedRecipients(raven),这说明在真实 Android 客户端中登录后立即获取reshare转发与raven私信两种场景的排名收件人是标准行为。对于用该 SDK 构建自动化账号的开发者而言还原真实设备行为登录后执行ig.simulate.postLoginFlow()可置于process.nextTick异步执行见 README.md 中的基础用法即可自动完成包括rankedRecipients在内的设备行为预热降低账号被风控判定为异常客户端的概率业务复用直接调用ig.direct.rankedRecipients(raven, query)即可在自定义私信功能如向最近联系人发送消息中获取推荐会话列表。七、相关接口与源码索引本主题涉及的所有接口与源码可按以下仓库路径继续深入接口族源码RootObject / RankedRecipientsItem / User / Thread / UsersItem 全部定义src/responses/direct.repository.ranked-recipients.response.ts仓储方法实现src/repositories/direct.repository.ts登录模拟流程调用处src/services/simulate.service.ts接口文档本接口 DirectRepositoryRankedRecipientsResponseThread、RankedRecipientsItem、RootObject、User、UsersItem仓储类方法签名DirectRepository 类文档八、使用建议与注意点判空优先RankedRecipientsItem的thread与user均为可选字段解析前必须先做存在性判断避免访问空属性过滤 pending 会话在收件人选择 UI 中建议跳过pending: true的会话避免向未建立的会话发送消息标题兜底thread_title可能为空展示时应回退到thread_id或参与者姓名拼接区分会话形态通过named/canonical/thread_type组合判断单聊与群聊决定展示与消息行为如群聊是否允许 全体viewer_id 辅助定位对方在单聊中用viewer_id从users中排除自己即可得到消息对端。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 响应接口详解DirectRepositoryRankedRecipientsResponseRootObject 与 DM 排名收件人数据解析instagram private api 响应接口详解DirectRepositoryRankedRecipientsResponseRootObject后端instagram-private-api 私信收件箱用户接口 DirectInboxFeedResponseUser 全面解析instagram private api 私信收件箱用户接口 DirectInboxFeedResponseUser 全面解析 导读 DirectInboxF后端instagram-private-api 源码解析DirectInboxFeedResponsePlaceholder 占位符接口与私信收件箱响应模型instagram private api 源码解析DirectInboxFeedResponsePlaceholder 占位符接口与私信收件箱响应模型 Di后端上一篇11.7GB 只用 38 秒m4s-converter 免费合并 B 站缓存m4s 无损转 MP4下一篇Reloaded-II 完整使用指南从游戏进程注入到自定义模组配置创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Oozie安装排障手记:Hadoop生态协调器部署实战

Oozie安装排障手记:Hadoop生态协调器部署实战

1. 项目概述:为什么Oozie安装会变成“取经路”?Oozie不是个新东西,但每次在新环境里把它跑起来,都像重新考一次运维资格证。标题里那个“九九八十一”,真不是夸张——我去年在某高校大数据实验室部署一套教学用Hadoop生…

2026/10/15 21:08:13 阅读更多 →
八数码问题的BFS实现:状态建模、去重与路径回溯

八数码问题的BFS实现:状态建模、去重与路径回溯

简介:本资源是一份面向计算机专业学生与算法初学者的C语言实践教程,聚焦八数码问题的经典求解方法——宽度优先搜索(BFS)原理与代码实现。资源以详实的DOC文档形式呈现,完整解析状态建模、节点扩展逻辑、空格移动约束&…

2026/10/15 21:07:12 阅读更多 →
Zotero Style 插件上手指南:阅读进度、关系图谱与期刊标签一次配齐

Zotero Style 插件上手指南:阅读进度、关系图谱与期刊标签一次配齐

Zotero Style 插件上手指南:阅读进度、关系图谱与期刊标签一次配齐 【免费下载链接】zotero-style Ethereal Style for Zotero 项目地址: https://gitcode.com/GitHub_Trending/zo/zotero-style 文献攒到两三百篇之后,你大概都遇到过这样的时刻&a…

2026/10/15 21:07:12 阅读更多 →

最新新闻

Claude Code + DeepSeek 从零安装教程:面向纯小白,6 步拥有自己的 AI 编程助手|TaoToken 统一 Key 接入

Claude Code + DeepSeek 从零安装教程:面向纯小白,6 步拥有自己的 AI 编程助手|TaoToken 统一 Key 接入

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 22:56:22 阅读更多 →
LOAM前端scanRegistration深度拆解:去畸变、曲率计算与特征提取调参实战

LOAM前端scanRegistration深度拆解:去畸变、曲率计算与特征提取调参实战

1. 从一次调试翻车说起:scanRegistration到底在干什么去年冬天调一个室外建图项目,前端里程计跑着跑着轨迹突然炸开,rviz里点云像天女散花一样乱飞。排查了两天,最后定位到scanRegistration节点输出的曲率计算有问题——边缘点和平…

2026/10/15 22:56:22 阅读更多 →
我的开源项目:把退货原因整理成可核对的商品改进清单

我的开源项目:把退货原因整理成可核对的商品改进清单

我的开源项目:把退货原因整理成可核对的商品改进清单 这是我的100个开源项目系列,介绍 shop-returns-reason-summary-cn。它是一份供 AI 助手使用的 Markdown Skill,按明确规则整理使用者提供的脱敏退款/退货记录。项目没有售后后台连接器&a…

2026/10/15 22:56:22 阅读更多 →
MyBatis Generator XML配置实战:从模板到代码生成全解析

MyBatis Generator XML配置实战:从模板到代码生成全解析

从 MyBatis Generator 的 XML 配置看起,很多人第一次用这个工具时对着配置模板一头雾水:classPathEntry是什么意思?table里的domainObjectName到底要不要写全限定名?targetProject该填什么路径?我又不希望生成Example类…

2026/10/15 22:56:22 阅读更多 →
Java学生成绩管理系统实战:从解压到二次开发全指南

Java学生成绩管理系统实战:从解压到二次开发全指南

简介:这是一套面向Java初学者与课程设计学习者的学生成绩管理系统完整源码,基于Java语言开发,搭配MySQL数据库,适合用于课程设计参考、毕业设计练手或Java GUI与JDBC实战学习。压缩包共104个文件,约714KB,包…

2026/10/15 22:56:22 阅读更多 →
喂文件、写代码、聊天:三个开源工具打造本地化AI工作流

喂文件、写代码、聊天:三个开源工具打造本地化AI工作流

1. 项目概述:为什么“喂文件、写代码、聊天”这三件事,才是AI真正落地的临界点最近在几个技术社区和产品团队内部做AI工具链调研时,反复听到一句话:“模型能力早就够了,卡在怎么用上。”不是模型不够聪明,而…

2026/10/15 22:55:22 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →