后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载导读MediaRepositoryConfigureResponseCandidatesItem是instagram-private-api中描述**发布configure媒体成功后Instagram 服务端返回的图片候选版本candidates**的核心类型接口。使用 SDK 的ig.publish.photo()或ig.media.configure()完成发帖后返回结果中的media.image_versions2.candidates数组即由该接口描述。阅读本文后你将理解该接口的字段含义、在完整响应结构中的嵌套位置、其数据来源与底层调用链并掌握从候选列表中提取最高清图片 URL 的实战方法。接口定义与三个核心属性该接口定义于源码文件 src/responses/media.repository.configure.response.ts仅包含三个属性属性类型说明源码行号widthnumber该候选图片的像素宽度L41heightnumber该候选图片的像素高度L42urlstring该候选图片的完整 CDN 地址L43export interface MediaRepositoryConfigureResponseCandidatesItem { width: number; height: number; url: string; }这是整个仓库中最精简的响应类型之一它不携带estimated_scans_sizes等额外元数据对比 视频配置响应 与 侧边轮播响应 中的同名类型那两个类型额外包含estimated_scans_sizes: number[]字段仅保留定位图片所必需的宽、高与地址三要素可用于精确计算候选版本的显示尺寸与缩放比例。在完整响应结构中的嵌套位置该接口不是独立返回的顶层类型而是作为嵌套结构的一部分出现。它在响应对象中的完整路径为MediaRepositoryConfigureResponseRootObject └── media: MediaRepositoryConfigureResponseMedia └── image_versions2: MediaRepositoryConfigureResponseImage_versions2 └── candidates: MediaRepositoryConfigureResponseCandidatesItem[]从 src/responses/media.repository.configure.response.ts 可以看到完整的层级关系export interface MediaRepositoryConfigureResponseRootObject { media: MediaRepositoryConfigureResponseMedia; upload_id: string; status: string; } export interface MediaRepositoryConfigureResponseMedia { // ... image_versions2: MediaRepositoryConfigureResponseImage_versions2; original_width: number; original_height: number; // ... } export interface MediaRepositoryConfigureResponseImage_versions2 { candidates: MediaRepositoryConfigureResponseCandidatesItem[]; }值得注意的细节是Media节点同时携带original_width与original_height媒体原始像素尺寸而candidates数组中每个条目则对应服务端生成的不同缩放版本。两者结合即可判断候选版本相对原始图片的缩放比例例如candidates[0].width / media.original_width即为该版本的横向缩放系数。数据来源从上传到 configure 的调用链MediaRepositoryConfigureResponseCandidatesItem的实例数据并非 SDK 本地构造而是由 Instagram 私信 API 的配置发布接口返回。核心入口是 MediaRepository.configure() 与 MediaRepository.configureVideo()两者均以MediaRepositoryConfigureResponseRootObject作为泛型参数向/api/v1/media/configure/发送签名后的表单并解析响应const { body } await this.client.request.sendMediaRepositoryConfigureResponseRootObject({ url: /api/v1/media/configure/, method: POST, form: this.client.request.sign(form), }); return body;其中视频配置在 query string 中额外附带video: 1参数。在发送前applyConfigureDefaultssrc/repositories/media.repository.ts会自动补齐_csrftoken、_uid、_uuid、device等会话信息并默认使用width 1520、height 2048作为源尺寸兜底值——也就是说即使不显式传宽高configure 请求依然能成功发出并返回带 candidates 的响应。在实际业务中开发者通常不会直接调用media.configure()而是通过 PublishService.photo() 等高阶方法完成上传 配置全流程。该方法先上传图片拿到upload_id再用image-size探测真实的图片宽高填入 configure 参数最终将MediaRepositoryConfigureResponseRootObject作为返回值整体交给调用方。参考 examples/upload-photo.example.tspublishResult即为该类型实例可直接打印查看。实战如何从 candidates 中提取图片 URL发布成功后publishResult.media.image_versions2.candidates是一个包含多个缩放版本的数组典型用法是按需选取某一清晰度。由于 SDK 仅承诺candidates是CandidatesItem[]数组、数组中各版本的具体顺序与数量由服务端决定最稳妥的选取策略是显式按宽高筛选而非依赖固定下标const result await ig.publish.photo({ file: await readFileAsync(./myPicture.jpg), caption: my caption, }); const candidates result.media.image_versions2.candidates; // 选取宽度最接近 1080 的候选版本 const best candidates.reduce((prev, cur) Math.abs(cur.width - 1080) Math.abs(prev.width - 1080) ? cur : prev, ); console.log(候选版本${best.width}x${best.height}); console.log(CDN 地址${best.url});几点实用提示candidates[0]不保证是最高清版本涉及封面图/缩略图场景时应遍历数组按width、height排序或筛选url字段本身即完整地址字符串源码类型为string可直接用于下载、缓存或转发无需额外拼接域名若你需要与媒体原始尺寸比对缩放比例可同时读取result.media.original_width与result.media.original_height定义于 src/responses/media.repository.configure.response.ts。关联类型与同构候选结构MediaRepositoryConfigureResponseCandidatesItem所属的响应文件在 src/responses/index.ts 中随三个 configure 响应一并导出media.repository.configure.response.ts时间线图文发布本文主体media.repository.configure-video.response.ts时间线视频发布其CandidatesItem多出estimated_scans_sizes: number[]字段用于预估各版本的扫描占用media.repository.configure-sidecar.response.ts相册sidecar发布同样在每张子媒体上通过image_versions2.candidates暴露候选版本。此外candidates数组结构在整个仓库中广泛复用——例如时间线拉取响应 timeline.feed.response.ts、点赞列表响应LikedFeedResponse、位置页响应LocationFeedResponse等都采用了 image_versions2→candidates宽/高/URL 的同一套图片版本模型。理解本接口即等于掌握了整个 SDK 中图片候选版本的通用读取范式。小结MediaRepositoryConfigureResponseCandidatesItem虽只有三个字段却承载了 SDK 发布流程中拿到已发布图片的可用版本这一关键环节。通过掌握其字段语义、嵌套层级、configure 调用链与按尺寸筛选的实践技巧你可以稳定地在自动化发帖、图片回读与缓存等场景中使用发布结果中的图片资源。如需进一步阅读完整响应类型可参考 media.repository.configure.response.ts 全文及 responses 模块文档。赞分享后端【免费下载链接】instagram-private-apiNodeJS Instagram private API SDK. Written in TypeScript.项目地址https://gitcode.com/gh_mirrors/in/instagram-private-api点击查看免费下载相关推荐instagram-private-api 响应结构解析UserFeedResponseCandidatesItem 图片候选接口详解instagram private api 响应结构解析UserFeedResponseCandidatesItem 图片候选接口详解 UserFeedRes后端instagram-private-api 响应类型解析SavedFeedResponseCandidatesItem 图片候选接口详解instagram private api 响应类型解析SavedFeedResponseCandidatesItem 图片候选接口详解 本文聚焦 NodeJ后端Apache bRPC 发版日程与版本发布全流程实战指南Apache bRPC 发版日程与版本发布全流程实战指南 bRPCbetter RPC是 Apache 软件基金会旗下的工业级 C RPC 框架其社区后端上一篇如何解密 RPG Maker MV/MZ 加密资源查看图片、处理音频与改完回放的步骤下一篇JPEXS FFDec完整指南快速上手SWF反编译、资源导出与编辑创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
阅读完成 · 觉得有帮助?