javascript - 如何使用发布请求从浏览器上传图像 Instagram

标签 javascript html node.js

我正在尝试学习 html 和 javascript,我给自己布置了这个小任务,我登录了 Instagram,我想发出上传图片的 Post 请求。我分析了上传的工作原理,并试图弄清楚如何完成任务。

要手动上传图片,请执行以下步骤:

  • 点击上传按钮(是<span>不成表格)
  • 文件管理器 popus 和用户选择图像
  • 您被重定向到另一个页面并且图片已上传

点击上传按钮后 post reuqest 提高到 https://www.instagram.com/rupload_igphoto/fb_uploader_<image_id> ,在请求有效负载中有图像二进制数据,并且有一些自定义 header 指定图像 ID 和其他图像数据。

我正试图找到一种方法来做同样的事情。 我想我可以在 html 页面中添加自定义 form发送 POST请求 rupload_igphoto/fb_uploader_<image_id> ,通过这种方式我可以保留所有的 cookie 和 session 数据,但我不知道如何更改请求 header 并作为请求发送 payload图像二进制数据。

如果我用 network 分析请求我可以看到开发工具

Inside the request parameters:
    - request payload: "ß\µÙº¦ÙÆëºÀF·GÇ&ØËUwp8çÓ4sÚdSkðEªì®[|<§îÿ...." ( that are the binary datas of the image)

Request custom headers:
    - X-Entity-Length: 370266
    - X-Entity-Name: fb_uploader_1577544947097
    - X-Instagram-Rupload-Params    
:{"media_type":1,"upload_id":"1577544947097","upload_media_height":1080,"upload_media_width":1080}

假设我创建了一个新的 form在 istagram 窗口内的 Node ,

<form action="rupload_igphoto/fb_uploader_<image_id>" method="POST" style="z-index: 10"> 
</form>

并且我知道图像二进制数据,如何将 header 添加到请求并将二进制数据添加到有效负载?

最佳答案

您不能向表单添加标题,read more .

您可以使用 XHR用 JS 发送数据,但 Instagram 很可能有工具来阻止这种尝试(事实上它不是一种形式可能是其中之一)。

这样做的原因是为了限制上传量,避免把平台变成图片备份服务。如果他们希望用户能够以编程方式上传,他们会提供一个带有凭据和内容的 API。

也就是说,如果您足够坚持,您仍然可以做到,请记住,您在途中会遇到一些奇怪的问题。

关于javascript - 如何使用发布请求从浏览器上传图像 Instagram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59512315/

相关文章:

javascript - React.js - this.props.children 一个对象,当从父级传播 .map 的结果时

regex - 文本的特定 CSS 颜色

html - CSS 百分比高度无效

node.js - 找不到模块 : Error: Can't resolve 'fs' with webpack

javascript错误返回选择html

javascript - 从 JavaScript 中的表格单元格中获取值...而不是 jQuery

java - 从 POJO 数据创建 HTML 页面

command-line - 在 node.js 中测试实际输出是否为终端

javascript - 在 React 中,你应该隐藏模态框还是将它们从 DOM 中移除?

javascript - 包含字符串的 getItem localstorage