首页 / 资讯中心 / 文章详情

instagram-private-api 中的 LikedFeedResponseFriendship_status 接口:解读点赞动态流中的用户关系状态

instagram-private-api 中的 LikedFeedResponseFriendship_status 接口:解读点赞动态流中的用户关系状态 ★ FEATURED ARTICLE
后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载本指南围绕 instagram-private-apiNodeJS Instagram 私有 API SDKTypeScript 编写中LikedFeedResponseFriendship_status接口展开介绍它在「我点赞过的帖子」动态流Liked Feed响应中所承载的用户关系状态字段、各字段的业务含义以及如何在LikedFeed分页拉取场景下基于这些状态做关注判断、亲密好友筛选等实战处理。读完本文你将掌握该接口的全部四个布尔字段、其来源接口层级与底层 API 调用链并能结合 FriendshipRepository 与ProfileEntity编写可运行的关系状态判定代码。一、接口概览点赞流里的关系快照LikedFeedResponseFriendship_status是 instagram-private-api 为「我点赞过的帖子」接口生成的响应类型之一定义在 src/responses/liked.feed.response.ts。它不属于根对象而是嵌套在媒体条目LikedFeedResponseItemsItem的作者信息LikedFeedResponseUser之下以可选属性friendship_status的形式出现。整个类型链从 TypeDoc 生成的结构看是LikedFeedResponseRootObject →items: LikedFeedResponseItemsItem[]LikedFeedResponseItemsItem →user: LikedFeedResponseUserLikedFeedResponseUser →friendship_status?: LikedFeedResponseFriendship_status也就是说每一条你点赞过的媒体记录里Instagram 服务端都可能顺带返回一个关于该媒体作者与你当前登录账号之间关系状态的迷你快照接口源码中对应的声明为export interface LikedFeedResponseFriendship_status { following: boolean; outgoing_request: boolean; is_bestie: boolean; is_restricted: boolean; }接口原文定义见 docs/interfaces/responses/LikedFeedResponseFriendship_status.md四个属性全部为boolean没有任何可选字段。二、四个布尔字段逐一解读1.following你是否已关注该作者类型boolean含义当前登录账号是否已经关注该媒体作者。典型场景拉取点赞流后用它过滤「我点赞了但还没关注」的作者作为批量关注、私信触达前的去重判断。2.outgoing_request是否存在待处理的主动关注请求类型boolean含义你对该作者是否发出了关注请求但尚未被对方接受通常对应对方是私密账号的场景。注意点outgoing_request与following是相互独立又互斥的状态——following: true表示已建立关注关系outgoing_request: true表示请求仍在途尚未建立关注关系。两个都为false则说明当前无关注关系。3.is_bestie对方是否在你的「亲密好友」列表中类型boolean含义该作者是否被设置为你的 Besties亲密好友。典型场景结合 FriendshipRepository.setBesties 与 SetBestiesInput{ add?: Arraystring | number; remove?: Arraystring | number }可以批量维护亲密好友名单并在点赞流中校验维护结果是否生效。4.is_restricted对方是否处于受限restrict状态类型boolean含义该作者是否被 Instagram 标记为受限账号或者你是否对其启用了「受限」交互设置。受限状态通常意味着评论、私信等互动会被过滤或降权。使用建议在粉丝运营、评论分析场景中优先排除is_restricted: true的用户避免互动数据失真。三、它在响应层级中的位置为什么是可选的在 src/responses/liked.feed.response.ts 中LikedFeedResponseUser将其声明为可选export interface LikedFeedResponseUser { pk: number; username: string; full_name: string; is_private: boolean; profile_pic_url: string; friendship_status?: LikedFeedResponseFriendship_status; is_verified: boolean; has_anonymous_profile_picture?: boolean; is_unpublished?: boolean; is_favorite?: boolean; can_see_primary_country_in_settings?: boolean; latest_reel_media?: number; profile_pic_id?: string; }这意味着服务端并非对每条媒体都保证返回friendship_status。Instagram 的/api/v1/feed/liked/接口在批量返回媒体列表时出于带宽与缓存考虑可能省略部分作者的关系状态。因此编码时必须做空值防御const status item.user?.friendship_status; if (status status.following) { // 已关注的作者 }同类设计中is_private、is_verified等核心字段是必填的而friendship_status以及profile_pic_id、is_favorite等属于按需返回的附加信息。四、底层调用链LikedFeed 如何拉取这些数据该接口的数据来自LikedFeed类发起的请求实现在 src/feeds/liked.feed.tsasync request(): PromiseLikedFeedResponseRootObject { const { body } await this.client.request.send({ url: /api/v1/feed/liked/, method: GET, qs: { max_id: this.maxId, }, }); this.state body; return body; }关键调用链信息端点GET /api/v1/feed/liked/返回「当前登录账号点赞过的媒体」列表分页参数max_id由响应中的next_max_id回填LikedFeed的set state()同时维护moreAvailable与maxIdsrc/feeds/liked.feed.ts驱动分页循环根对象结构LikedFeedResponseRootObject 包含items、num_results、more_available、auto_load_more_enabled、next_max_id、status。LikedFeed继承自通用 Feed 基类src/core/feed.ts因此天然支持items()、isMoreAvailable()、items$RxJS Observable 流以及serialize()/deserialize()等分页与状态持久化能力。五、同类关系状态接口对比LikedFeedResponseFriendship_status并非仓库中唯一的关系状态类型理解它与兄弟接口的差异有助于避免误用接口字段出现场景LikedFeedResponseFriendship_status本文following、outgoing_request、is_bestie、is_restricted点赞流媒体作者的内嵌关系快照可选FriendshipRepositoryShowResponseRootObjectfollowing、followed_by、blocking、muting、is_private、incoming_request、outgoing_request、is_blocking_reel、is_muting_reel、is_bestie通过GET /api/v1/friendships/show/{id}/获取的单用户完整关系状态src/repositories/friendship.repository.tsFriendshipRepositoryChangeResponseFriendship_statusfollowing、followed_by、blocking、muting、is_private、incoming_request、outgoing_request、is_bestie关注/取关/拉黑等操作后返回的关系状态src/repositories/friendship.repository.ts可以看出点赞流内嵌的关系快照字段最少只覆盖最常用的四个布尔状态需要完整关系信息如incoming_request、blocking时应改用client.friendship.show(pk)单独查询。这也是为什么LikedFeedResponseFriendship_status只用于批量浏览时的轻量判断不适合作为关系状态的权威来源。六、实战基于点赞流做关系状态分析场景 A遍历点赞流并统计未关注作者import { IgApiClient } from ./src/index; (async () { const ig new IgApiClient(); ig.state.generateDevice(your_username); await ig.account.login(your_username, your_password); const likedFeed ig.feed.liked(); const unFollowedAuthors: Array{ pk: number; username: string } []; const besties: Array{ pk: number; username: string } []; do { const items await likedFeed.items(); for (const item of items) { const user item.user; const status user?.friendship_status; if (!status) continue; // 服务端未返回关系快照跳过 if (!status.following !status.outgoing_request) { unFollowedAuthors.push({ pk: user.pk, username: user.username }); } if (status.is_bestie) { besties.push({ pk: user.pk, username: user.username }); } } } while (likedFeed.isMoreAvailable()); console.log(未关注的点赞作者:, unFollowedAuthors); console.log(亲密好友作者:, besties); })();提示点赞流接口的调用频率受限于登录状态与请求频率策略实际批量拉取时建议控制分页轮数并参考仓库中的 session.example.ts 做好会话状态持久化避免频繁登录触发风控。场景 B对未关注作者执行关注操作幂等写法仓库在 ProfileEntity 中提供了关注/取关的幂等封装checkFollow()与checkUnfollow()其内部正是调用friendship.show()校验following后再执行create()/destroy()// checkFollow 的实现逻辑src/entities/profile.entity.ts const friendshipStatus await this.client.friendship.show(this.pk); if (friendshipStatus.following true) return friendshipStatus; return await this.client.friendship.create(this.pk);点赞流条目中的user属于普通对象而非实体类如需复用上述幂等逻辑可先构造ProfileEntity实例或直接调用仓库方法import { ProfileEntity } from ./src/entities/profile.entity; const profile new ProfileEntity(ig); profile.pk item.user.pk; const status await profile.checkFollow(); // 已关注则原样返回否则发起关注 console.log(关注后状态 following , status.following);场景 C配合 Besties 管理校验若你通过client.friendship.setBesties({ add: [pk] })添加了亲密好友可以用点赞流中的is_bestie快速校验结果是否已生效注意点赞流缓存可能导致延迟权威校验仍以friendship.show()为准。七、易踩坑点小结字段可选性friendship_status在LikedFeedResponseUser中是Optional访问前务必判空状态含义互斥following与outgoing_request不会同时为true两者皆false才是真正无关系轻量快照而非权威数据需要incoming_request、blocking、muting等字段时请改用 friendship.show分页状态LikedFeed的state通过next_max_id与more_available维护游标不要在循环内重新实例化 Feed频率控制点赞流批量拉取与批量关注属于高敏操作建议结合请求重试与随机延时参照 unfollow-users.example.ts 的批量处理思路。八、扩展阅读接口定义与全量响应模型src/responses/liked.feed.response.tsLikedFeedResponseRootObject与LikedFeedResponseItemsItem均在 1–44 行分页 Feed 实现src/feeds/liked.feed.ts 与通用基类 src/core/feed.ts完整关系状态查询与变更src/repositories/friendship.repository.ts 及 friendship.repository.show.response.ts登录与会话管理examples/session.example.ts、examples/2fa-sms-login.example.ts。通过本文你已经清楚LikedFeedResponseFriendship_status的字段语义、在点赞流响应中的位置、底层 API 来源及其与FriendshipRepository的配合方式可以在此基础上安全地构建关注策略、亲密好友分析与内容运营等上层能力。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 中 IgtvSearchResponseFriendship_status 接口详解解析 IGTV 搜索结果的用户关系状态instagram private api 中 IgtvSearchResponseFriendship_status 接口详解解析 IGTV 搜索结果的用户后端instagram-private-api 接口解析HighlightsRepositoryHighlightsTrayResponseFriendship_status 好友关系状态详解instagram private api 接口解析HighlightsRepositoryHighlightsTrayResponseFriendship_后端instagram-private-api 中 ReelsTrayFeedResponseFriendship_status 接口详解Reels 故事托盘响应里的用户关系状态结构instagram private api 中 ReelsTrayFeedResponseFriendship_status 接口详解Reels 故事托盘响应后端上一篇Android自动化测试完整指南用Escrcpy轻松搞定多设备UI测试下一篇docker-selenium 浏览器镜像打标签全解析以 Selenium Grid 4.32.0 Chrome 95 为例创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?
咨询建站