跳转至

抓包验证状态 / 实现清单

依据:module-apis-421.md(JADX 静态)+ 源仓库 frida/threads/.../apis/Burp 实测,更权威,逐端点字段
用途:逐端点标注是否抓包验证过,作为 SDK 实现的进度清单与 TODO 依据。
维护:某端点抓包核对通过后,把状态从 ⚠️/❓ 升级为 ✅,并删除代码里对应的 TODO(抓包核对)

真实 gRPC 基线(2026-07-24):Python grpc.aio → Go gRPC server → Threads 真实 API 已覆盖当时定义的 14 个 RPC,共记录 40 次 gRPC 调用和 16 次上游 HTTP 往返。2026-07-25 新增图片上传/单图发布 2 个 RPC 及真实黑盒测试,仍待配置图片夹具执行,不计入上述已通过基线。2026-07-30 新增回复发帖(复用 CreateTextPost + reply_id)、点赞/取消点赞与关注/取关共 4 个 RPC,真机黑盒测试已就位, 同样待授权写操作后执行。

2026-07-30 新增抓包批次(同机 Burp 导出,含真实凭据,不入库

抓包文件 覆盖动作 解锁内容
登录+ 单图发帖.xml 冷启动 → 2FA 登录 → 单图发帖 单图链路金样本、主时间线请求体、通知、关注列表
登录+ 发帖(单图)、点赞、评论 帖子.xml 同上 + 点赞 + 评论 media/{id}/like/、回复发帖(reply_id)、replies_streaming/
新增关注取关.xml 同上 + 关注 + 取关 friendships/create/friendships/destroy/accounts_recs/ 参数、profile/reposts/

由这批抓包纠正的既有实现偏差(发帖全链路的请求指纹,均已修复并由 internal/client/posts_configure_golden_test.go 逐字节回归;关系状态模型的字段缺口见 §9):

原实现 真机
text_post_app_info / location / caption_add_on 内联 JSON 对象 转义 JSON 字符串
device / extra 内联对象 内联对象(一致)
嵌套对象字段顺序 json.Marshal(map) 字母序 客户端插入序(已改用 transport.Body
text_post_app_info 字段集 缺 4 键 self_thread_context_id/is_ghost_post/is_dm_me_post/is_reply_approval_enabled
多发字段 app_attribution_android_namespacefrom_drafts 真机不发送,已删除
文字帖字段集 缺 2 键 bottom_camera_dial_selected/hide_from_profile_grid
rupload 头名 X-Fb-Photo-Waterfall-Id X_fb_photo_waterfall_id(下划线)
Friendly-Name IgApi: media/{media_id}/delete/ 模板 完整实际 path(含具体 id 与 query)

实现进度(Go SDK 与 gRPC)

下表同时记录 Go SDK 能力和 gRPC RPC。当前共 7 个公开 gRPC 服务、19 个 RPC;insights / mentions 缺真实 GraphQL doc_id,只保留为研究域,不进入公开 Proto/SDK。

模块 已实现 SDK 方法 / gRPC RPC 端点 依赖签名
profile GetUserInfo / ListProfileThreads / EditProfile users/{uid}/info/text_feed/{uid}/profile/accounts/edit_profile/ 否(edit_profile 为纯 form;主页帖子流已强类型化)
friendships GetFriendshipStatus / FollowUser / UnfollowUser friendships/show/{uid}/friendships/create/{uid}/friendships/destroy/{uid}/ 读否;写是
auth/login Login / GetCurrentUser(含 edit=true) CAA/Bloks 登录链 / accounts/current_user/ 登录需要 signed_body + 密码 RSA 加密 + 默认硬件 attestation 门禁
feed ListRecommendedUsers text_feed/recommended_users/
replies ListProfileReplies text_feed/{uid}/profile/replies/
search KeywordSearch / ValidateTag fbsearch/text_app/keyword/search/text_feed/tags_validate/
posts CheckOffensiveText / CreateTextPost(含回复)/ UploadImage / CreateImagePost / DeletePost / LikeMedia / UnlikeMedia warning/...media/configure_text_only_post/rupload_igphoto/media/configure_text_post_app_feed/media/{id}/delete/media/{id}/like/media/{id}/unlike/ configure 与 like 是;rupload 为原始二进制

列表端点 feed/replies/search 返回结构化 ListPage(items/paging/metadata),调用方不再解析 JSON 字符串。 profile-threads 已按动态抓包的 threads[].thread_items[].post 升级为业务强类型。

图例

状态 含义 实现要求
✅ 已抓包 报告标「已确认」,抓包命中 可直接实现,无需 TODO
⚠️ 高概率 JADX 字面量,未抓包核对 实现 + TODO(抓包核对): 置信度=高概率
❓ 推测 仅 path/调用链/加密常量推断 实现 + TODO(抓包核对): 置信度=推测,优先补抓包
⛔ 缺源 报告未覆盖,业务需要 禁止臆造 path,TODO(缺源): 需 Frida hook/抓包补

0. 基建(transport 层)

状态 备注
Host:i.instagram.com/api/v1//graphql/query/graphql_www ✅ 已抓包
头:Authorization: Bearer IGT:2:... ✅ 已抓包 gRPC 业务调用从完整 AccountState.session 取得;Go SDK 登录成功后生成并返回同类 session
账号级出口:LoginRequest.proxy / AccountState.proxy ✅ 已实现,待真实代理验收 Python/Proto Proxy → Go ProxyConfig;支持 HTTP(S)/SOCKS5/SOCKS5H、IP 白名单与认证代理;同账号复用、跨账号隔离连接池
头:X-Ig-App-Id: 3419628305025917 ✅ 已抓包
头:User-Agent: Barcelona 421.0.0.50.67 ... ✅ 已抓包
头:X-Fb-Friendly-Name ✅ 已抓包
signed_body 签名算法 ✅ 已确认 本版本无 HMACsigned_body=SIGNATURE.<json> 即线上格式,服务端不校验签名段。见 signed-body-421.md嵌套对象分两类,逐字段以抓包为准text_post_app_info/location/caption_add_on 是转义 JSON 字符串(Body.Set),device/extra 是内联对象(Body.SetRaw

1. auth 模块

端点 协议 状态 备注
完整 AccountState 认证 ✅ 策略已定 业务 RPC 显式携带完整状态;Go transport 从 session 生成 Authorization,公开 SDK 不提供 token/设备拆参
accounts/current_user/?edit=true REST ✅ 已抓包 编辑资料页读取,字段更全(bio_links/封面图/is_private);见 apis/accounts/编辑主页.md
CAA/Bloks 登录状态机(Go SDK + gRPC) REST/Bloks ⚠️ gRPC 已实现,真实验收待执行 AuthService.Login 默认要求硬件 signer;无证明软件路径必须显式授权,返回结果永不把即时 whoami 等价为长期稳定

2. profile 模块

端点 协议 状态 备注
users/{user_id}/info/ REST ✅ 已抓包 Friendly-Name user_info_by_id
text_feed/{user_id}/profile/ REST ✅ 已抓包 主页帖列表
text_feed/{user_id}/profile/media/ REST ✅ 已抓包
accounts/edit_profile/ REST ✅ 已抓包 纯 form,不走 signed_body;整表回传;已支持 username/显示名/简介/隐私/链接及标题;头像、封面为独立缺源端点,location 不是该端点字段
accounts/set_biography/ REST ⚠️ 高概率
accounts/change_profile_picture/(头像/封面) REST ⛔ 缺源 待抓包
GQL xdt_text_app_edit_display_name / create_or_update_user_bio_link GQL ⚠️ 高概率
GQL ProfileCompletionPercentage GQL ✅ 抓包出现
users/search/check_username/blocked_list/ REST ⚠️ 高概率

3. posts 模块(发帖 / 媒体)

端点 协议 状态 备注
media/configure_text_only_post/ REST ✅ 已抓包 纯文字贴主路径
media/configure_text_only_post/ + text_post_app_info.reply_id REST ✅ 已抓包 回复/评论:同端点不同形态;entry_point=permalink_inline_composercontainer_module=ig_text_post_permalinksource_of_action=PermalinkInlineComposer,带 ranking_info_token不带 camera_session_id/creation_logger_session_id/is_spoiler_media/self_thread_context_id登录+ 发帖(单图)、点赞、评论 帖子.xml item146)
media/{media_id}/like/ REST ✅ 已抓包 点赞;media_id{pk}_{author_uid} 复合 id;14 个 signed_body 字段 + signed_body 之外一个明文 d=0;响应仅 {"status":"ok"}(同上 item140)
media/{media_id}/unlike/ REST ❓ 推测 取消点赞;与 like 对称推导,本轮抓包未覆盖。已实现并标 TODO,唯一真机判据是 test_posts_like_and_unlike_own_post
/rupload_igphoto/{name} REST ✅ 已抓包 原始图片二进制上传,返回 upload_id
media/configure_text_post_app_feed/ REST ✅ 已抓包 单图帖,关联 rupload 的 upload_id
/rupload_igvideo/{name} REST 🚫 平台不支持 Threads 客户端不提供发布视频帖的能力,该路径是 IG 共用残留。不是「缺抓包」,不要再列为待办
media/configure_text_post_app_sidecar/ REST ⚠️ 高概率 轮播
media/upload_finish/ REST ⚠️ 高概率 上传收尾
warning/check_offensive_multi_text/ REST ✅ 请求已抓包,响应不可用 请求字段与真实 App 一致;真实 App 抓包及 2026-07-24 线上回归均返回 HTTP 404,gRPC 按真实错误路径验收
warning/check_offensive_text/ REST ⚠️ 高概率 单条
发帖 body 完整字段(caption/text_post_app_info/publish_mode/audience…) ✅ 已抓包 单图帖与文字回复的完整 body 已逐字节固化为 golden test(见上文「由这批抓包纠正的既有实现偏差」);带位置/投票的样本另见 burp/发帖-删除-位置-投票.xml

4. replies 模块

端点 协议 状态 备注
text_feed/{user_id}/profile/replies/ REST ✅ 已抓包 回复 tab
text_feed/{post_pk}/replies_streaming/ REST ✅ 已抓包 未实现。单帖回复流;query filter_type=all/sort_order=top/is_app_start/deeplink_*;响应是多段流式 JSON(首段只含目标帖,后续段带 reply_threads),字段 target_post_id/containing_thread/reply_threads[]/paging_tokens/sibling_threads/related_threads。适合设计为 gRPC server-streaming
GQL xdt_text_app_approve_reply / ignore_reply / bulk_*_pending_replies GQL ⚠️ 高概率
text_feed/is_private_replies_user_minor/ REST ✅ 已抓包 响应 is_eligible_youth_messaging

5. insights 研究域(不属于公共 API)

端点 协议 状态 备注
GQL TextAppAccountInsightsQuery GQL ✅ 抓包出现 账号洞察
GQL profile_completion_percentage GQL ✅ 抓包出现
端点 协议 状态 备注
fbsearch/text_app/keyword/search/ REST ⚠️ 高概率 关键词搜索
fbsearch/ig_typeahead/keyword_typeahead/typeahead_stream/ REST ⚠️ 高概率 参数见报告 §9.2
text_feed/tags_validate/ REST ✅ 已抓包 发帖选主题前置校验,响应 is_valid/is_sensitive
text_feed/tags_search/ REST ⚠️ 高概率
GQL xdt_text_app_keyword_search_results GQL ⚠️ 高概率
GQL TagTypeaheadNullState GQL ✅ 抓包出现

7. mentions 研究域(不属于公共 API)

端点 协议 状态 备注
GQL xdt_text_app_mention_suggestions GQL ❓ 推测 仅字段名
BcnMentionNullStateApi 对应端点 GQL ❓ 推测

8. feed 模块(时间线 / 推荐流)

端点 协议 状态 备注
feed/text_post_app_timeline/ REST ✅ 已抓包 未实现。Threads 主时间线,请求体全部明文(此前误判为加密)。冷启动 10 字段:client_startup_type=cold/reason=cold_start_fetch/pagination_source=text_post_feed_threads/is_pull_to_refresh=0/_uuid/startup_origin=normal/priming_cache_setting/is_dark_mode/session_id/bloks_versioning_id;翻页改 reason=pagination + 不透明 max_idfeed_view_info/client_in_session_features 是遥测,冷启动不带。响应 feed_items[].text_post_app_thread.thread_items[].post,与主页帖子流同构。也是点赞 logging_info_token / 回复 ranking_info_token 的来源
text_feed/recommended_users/ REST ✅ 路径已抓包 参数 ⚠️ 高概率(报告 §5.1);响应 users[]/paging_token/has_more
text_feed/accounts_recs/ REST ✅ 已抓包 未实现。参数 media_id/target_user_id/follow_source=text_app_permalink_follow/is_app_start;响应 users/is_recommend_account/in_feed_su_tracking_token/in_feed_su_title/user_tstf_groups
feed/timeline/timeline_stream/ REST ⚠️ 高概率 IG 共用残留

9. friendships 模块(关系 / 关注)

端点 协议 状态 备注
friendships/show/{user_id}/ REST ✅ 已抓包 关系状态。真机响应(item183)确认 17 个字段中的 13 个;模型此前缺 is_bestie/is_restricted/is_feed_favorite/text_post_app_pre_following,已补齐。JADX 来源的 subscribed/is_viewer_unconnected/should_show_profile_upsell/is_banner_profile_upsell/reachability_status 真机未返回,保留并标 TODO
friendships/create/{user_id}/ REST ✅ 已抓包 已实现。signed_body 12 字段(顺序见 golden test):include_follow_friction_check=1/delivery_class=organic/media_id/ranking_info_token/user_id/radio_type/_uid/device_id/_uuid/media_id_attribution/nav_chain/container_module;响应 friendship_status+previous_following+error(item173)
friendships/destroy/{user_id}/ REST ✅ 已抓包 已实现。同 create 但不发 delivery_classdevice_idprevious_following 返回 null(item188)。无 media_id 归因的形态(直接按 user_id 操作)真机未覆盖,已标 TODO
friendships/following/ REST ✅ 已抓包 未实现。参数 text_post_app_onboarding_setting=onboarded_only;响应 users/big_list/page_size/has_more/follow_ranking_token/should_limit_list_of_followers
friendships/show_many/ REST ⚠️ 高概率 批量关系
friendships/create_many/async/ REST ⚠️ 高概率 异步批量关注
friendships/followers_you_follow_back/ REST ⚠️ 高概率
friendships/pending_follow_requests_count/ REST ⚠️ 高概率
friendships/mute_* / unmute_* REST ⚠️ 高概率
text_feed/follow_many/ / follow_many_blocking/ REST ⚠️ 高概率 参数见报告 §6.2
text_feed/approve_all_follow_requests/ / remove_all_prefollows/ REST ⚠️ 高概率
GQL xdt_text_app_unfollow_many_blocking GQL ⚠️ 高概率 含加密键

附:暂不立模块的额外域(待评估)

代表端点 状态
notifications text_feed/text_app_notifications/ ✅ 已抓包。参数 mark_as_seen/timezone_offset/timezone_name/is_app_start;响应 new_stories[]/old_stories/priority_stories/next_max_id/last_checked/continuation_token/counts/is_last_page,story 字段 story_type/type/args/pk/ndid/notif_name/trace_id/counts
notifications notifications/badge/ ✅ 已抓包(报告未覆盖的新端点)。signed_body user_ids/device_id/_uuid/phone_id/trigger=BARCELONA/is_onboarded_in_current_session/include_direct_map;响应 badge_payload
notifications text_feed/text_app_inbox_seen/ ⚠️ 高概率;本轮未触发
profile text_feed/{uid}/profile/reposts/ ✅ 已抓包(新端点)。转发 tab;响应 medias/threads/next_max_id
auth accounts/fetch_onetap/ ✅ 已抓包(新端点)。登录后换取 login_nonce,用于 one-tap 复登
direct(私信) direct_v2/*text_feed/ranked_share_thread_message_candidates_suggestions/ ⚠️/❓;后者路径与响应 entities 已抓包,参数 count_per_page

GraphQL 明文字段全集约 122 条见 api-paths-extract.json,未逐条列入本表;实现到相关功能时按需补。