资讯动态

instagram-private-api 响应类型详解:MediaUpdatedMediaResponsePoll_sticker 与 Story 投票贴纸数据结构

发布时间:2026/10/16 1:53:26 来源:尧图企业网站定制
后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载本篇技术指南围绕 instagram-private-apiNodeJS Instagram 私有 API SDK中 MediaUpdatedMediaResponsePoll_sticker 这一 TypeScript 响应接口展开。它是 SDK 对 Instagram Story「投票贴纸poll sticker」服务端返回数据的结构化描述在调用 Story 投票、拉取轮播Reels与 IGTV 等场景中都会出现。读完本文你将掌握该接口全部 9 个字段的类型、含义与取值边界理解它在整个updated_media响应树中的嵌套位置并能结合MediaRepository.storyPollVote与StickerBuilder.poll实现发布投票贴纸 → 读取投票状态 → 提交投票 → 拉取投票者名单的完整闭环。接口在响应树中的位置MediaUpdatedMediaResponsePoll_sticker不是独立的根对象而是嵌套在 Story 媒体更新响应中的叶子节点。它的完整父链为MediaUpdatedMediaResponseRootObject └── updated_media: MediaUpdatedMediaResponseUpdated_media └── story_polls: MediaUpdatedMediaResponseStoryPollsItem[] └── poll_sticker: MediaUpdatedMediaResponsePoll_sticker根对象 MediaUpdatedMediaResponseRootObject 只有两个字段updated_media与statusstring接口调用成功时通常为ok。MediaUpdatedMediaResponseUpdated_media 承载整条 Story 的完整元数据taken_at、pk、media_type、user、caption、like_count等其中story_polls: MediaUpdatedMediaResponseStoryPollsItem[]是该媒体上全部投票贴纸的数组。MediaUpdatedMediaResponseStoryPollsItem 描述贴纸在画面上的布局信息x、y、z、width、height、rotation、is_pinned、is_hidden、is_sticker其poll_sticker字段即指向本文主角MediaUpdatedMediaResponsePoll_sticker。上述结构均定义于 src/responses/media.updated-media.response.ts其中MediaUpdatedMediaResponsePoll_sticker位于 第 101–111 行。九个字段逐一解析MediaUpdatedMediaResponsePoll_sticker共声明 9 个属性按职责可分成四组。1. 贴纸身份与题目字段类型含义idstring贴纸实体的标识区别于poll_id与同文件 MediaUpdatedMediaResponseStoryPollsItem 中的布局条目相对应poll_idstring投票的唯一 ID是后续调用storyPollVote、storyPollVoters时必须传入的关键参数questionstring投票问题文本例如这组穿搭你更喜欢哪一套2. 选项与计票结果字段类型含义talliesMediaUpdatedMediaResponseTalliesItem[]每个选项的计票数组。选项通常为两个对应发布端Tallies [PollStickerTallie, PollStickerTallie]的二元组约束promotion_talliesnull推广/付费投放相关的计票数据。当前 SDK 将该字段固定声明为null说明在现有响应中该数据不返回其中 MediaUpdatedMediaResponseTalliesItem 的结构极为精简src/responses/media.updated-media.response.ts#L112-L116字段类型含义textstring选项文本font_sizenumber选项文字字号countnumber该选项获得的票数3. 当前观看者视角的交互状态字段类型含义viewer_can_voteboolean当前登录用户是否仍可投票Story 过期、已投过或作者关闭后为falseviewer_votenumber当前用户已选择的选项索引0表示第一项、1表示第二项未投票时可由viewer_can_vote结合交互流程判断4. 投票生命周期字段类型含义finishedboolean投票是否已结束true表示作者已结束投票或 Story 已过期is_shared_resultboolean作者是否开启了「分享投票结果」功能开启后每位投票者在投完票即可看到实时结果该接口从何而来storyPollVote 调用链在 SDK 中MediaUpdatedMediaResponsePoll_sticker所在响应树是 MediaRepository.storyPollVote 方法的返回类型public async storyPollVote( mediaId: string, pollId: string | number, vote: 0 | 1, ): PromiseMediaUpdatedMediaResponseRootObject { const { body } await this.client.request.send({ url: /api/v1/media/${mediaId}/${pollId}/story_poll_vote/, method: POST, form: this.client.request.sign({ _csrftoken: this.client.state.cookieCsrfToken, radio_type: this.client.state.radioType, _uid: this.client.state.cookieUserId, vote, _uuid: this.client.state.uuid, }), }); return body; }要点如下请求路径POST /api/v1/media/{mediaId}/{pollId}/story_poll_vote/其中mediaId是 Story 的 media idpollId即本接口的poll_id字段。投票参数vote只能是字符串0或1对应tallies数组的两个选项下标注意类型是string而非number。签名表单与 SDK 其他请求一致通过this.client.request.sign(...)注入_csrftoken、_uid、_uuid与radio_type源自client.state这些字段由State在登录成功后维护。返回值服务端会返回更新后的整条媒体数据即MediaUpdatedMediaResponseRootObject因此开发者可以直接从返回体body.updated_media.story_polls[x].poll_sticker.tallies读取投票后的最新计票结果无需再次拉取。与其它 Story 响应中投票结构的差异仓库中还存在另外两个外观相似、但来源不同的投票贴纸结构便于对照理解结构定义位置差异点MediaUpdatedMediaResponsePoll_stickersrc/responses/media.updated-media.response.ts#L101-L111poll_id为string且viewer_vote为必填的numberReelsMediaFeedResponsePollStickersrc/responses/reels-media.feed.response.ts#L94-L104poll_id为numberviewer_vote为可选字段viewer_vote?: numberfont_size在TalliesItem中也标记为可选ReelsTrayFeedResponsePoll_stickersrc/responses/reels-tray.feed.response.ts#L219-L228没有viewer_vote字段字段顺序也不同这些差异反映了不同接口端点在字段可选性上的细微差别实践中应从各自来源的响应根对象如ReelsMediaFeedResponseRootObject、ReelsTrayFeedResponseRootObject取值避免混用。在ReelsMediaFeedResponseRootObject中story_polls同样是可选数组story_polls?见 src/responses/reels-media.feed.response.ts#L76。发布端对应PollSticker 贴纸构建器该接口的字段设计并非单向存在——发布侧由 PollSticker 类生成同构数据export interface PollStickerTallie { text: string; fontSize?: number; } type Tallies [PollStickerTallie, PollStickerTallie]; export class PollSticker extends InstaSticker { private _tallies: Tallies; set tallies(value: Tallies) { this._tallies value.map(t ({ fontSize: 28.0, ...t })) as Tallies; } question: string; finished?: boolean false; viewerVote?: number 0; viewerCanVote?: boolean true; isSharedResult?: boolean false; width 0.49934897; height 0.1266892; get id(): string { return polling_sticker_vibrant; } get key(): string { return story_polls; } }对照要点talliessetter 会对传入的两个选项自动补默认fontSize: 28.0与响应端MediaUpdatedMediaResponseTalliesItem.font_size一一对应类型约束[PollStickerTallie, PollStickerTallie]保证恰好两项。finished、viewerVote、viewerCanVote、isSharedResult与响应接口中的finished、viewer_vote、viewer_can_vote、is_shared_result语义一致发布时即写入默认值未结束、未投票、可投票、不共享结果。id固定为polling_sticker_vibrantkey固定为story_polls——这正是响应中MediaUpdatedMediaResponseUpdated_media.story_polls数组名的来源发布与读取两端通过key对齐。通过 StickerBuilder.poll 即可快速创建const sticker StickerBuilder.poll({ question: 你觉得哪套更合适, tallies: [ { text: A 方案 }, { text: B 方案 }, ], });实战投票数据读取与结果展示以下组合展示了从读取到投票再到展示结果的完整用法import { IgApiClient } from ./src; const ig new IgApiClient(); // 登录略 const media await ig.media.storyPollVote(mediaId, pollId, 0); const updated media.updated_media; for (const storyPoll of updated.story_polls) { const sticker storyPoll.poll_sticker; if (sticker.finished) { console.log(投票已结束${sticker.question}); } sticker.tallies.forEach((tally, i) { console.log(选项 ${i} [${tally.text}]: ${tally.count} 票); }); console.log(当前用户投票${sticker.viewer_vote}是否可继续投票${sticker.viewer_can_vote}); }如需获取具体投了某选项的用户名单SDK 在 FeedFactory.storyPollVoters 提供了对应 Feedconst voters await ig.feed.storyPollVoters(mediaId, pollId);它会基于story_poll_voters接口分页返回voter_info/voters列表其响应类型定义于 story-poll-voters.feed.response.ts该文件同时定义了StoryPollVotersFeedResponseVotersItem等类型。小结MediaUpdatedMediaResponsePoll_sticker是 SDK 对 Instagram Story 投票贴纸响应数据的标准建模id/poll_id/question定义贴纸身份与问题tallies/promotion_tallies描述选项计票viewer_can_vote/viewer_vote表达当前观看者的交互状态finished/is_shared_result标识投票生命周期与结果分享配置。理解它需要结合三个层面响应端接口树media.updated-media.response.ts、交互方法media.repository.ts 的storyPollVote以及发布端构建器poll.sticker.ts。三者字段相互呼应构成了投票贴纸创建 → 读取 → 交互 → 结果的完整数据闭环是二次开发 Story 投票类功能时的核心参考。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 响应类型详解MediaUpdatedMediaResponseStoryPollsItem 与 Story 投票贴纸数据结构instagram private api 响应类型详解MediaUpdatedMediaResponseStoryPollsItem 与 Story 投票贴后端instagram-private-api 响应类型详解StoryQuizParticipantsFeedResponseParticipantsItem——Story 问答贴纸参与者数据结构instagram private api 响应类型详解StoryQuizParticipantsFeedResponseParticipantsItem——后端instagram-private-api 中 ReelsMediaFeedResponseStoryPollsItem 接口详解解析 Reels/Story 投票贴纸的响应结构instagram private api 中 ReelsMediaFeedResponseStoryPollsItem 接口详解解析 Reels/Story后端上一篇终极卡通渲染指南如何用lilToon着色器打造专业级角色效果下一篇如何彻底告别网盘限速九大主流网盘直链解析工具完整指南创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑