CUrl从登录页面的typeform结果下载结果图像

CUrl从登录页面的typeform结果下载结果图像,curl,typeform,Curl,Typeform,我在使用curl或typeformapi方面都是新手,因此不仅感谢Anwser,还感谢任何链接或教程来帮助我 我面临的问题是,当我尝试使用curl或wget在typeform上获取上传的图像时,它不会保存图像,而是保存typeform的登录页面 使用API恢复下载链接本身效果很好。 我使用了命令 curl--request GET--url--header'Authorization:Bearer{MyId} 这将返回一个包含所有响应的JSON对象。此JSON文件中包含以下块: "field"

我在使用curl或typeformapi方面都是新手,因此不仅感谢Anwser,还感谢任何链接或教程来帮助我

我面临的问题是,当我尝试使用curl或wget在typeform上获取上传的图像时,它不会保存图像,而是保存typeform的登录页面

使用API恢复下载链接本身效果很好。 我使用了命令

curl--request GET--url--header'Authorization:Bearer{MyId}

这将返回一个包含所有响应的JSON对象。此JSON文件中包含以下块:

"field":{  
       "id":"SM3co23sAfCQ",  
        "type":"file_upload",  
        "ref":"2953330e-3c0b-4da3-bbb1-78a370152b10"  
        },  
"type":"file_url",  
"file_url":"https://admin.typeform.com/form/aLsAcC/field/SM3co23sAfCQ/results/1a4a6ab57b29-IMG_0354.JPG/download"  
但是当我尝试下载文件时,它似乎不起作用。 无论我是否跑步:

curl -O https://admin.typeform.com/form/aLsAcC/field/SM3co23sAfCQ/results/1a4a6ab57b29-IMG_0354.JPG/download

curl --request GET --url https://admin.typeform.com/form/aLsAcC/field/SM3co23sAfCQ/results/1a4a6ab57b29-IMG_0354.JPG/download --header 'Authorization: Bearer {MyId}'   
or   
wget https://admin.typeform.com/form/aLsAcC/field/SM3co23sAfCQ/results/1a4a6ab57b29-IMG_0354.JPG/download   
它似乎总是给出相同的结果

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url=https://admin.typeform.com/login/" />

        <title>Redirecting to https://admin.typeform.com/login/</title>
    </head>
    <body>
        Redirecting to <a href="https://admin.typeform.com/login/">https://admin.typeform.com/login/</a>.
    </body>
</html>

重定向到https://admin.typeform.com/login/
重定向到。
Wich只是该站点的登录页面

奇怪的是,当我使用我的浏览器时,它工作得很好,所以我怀疑我错过了某种形式的身份验证。这可能是一个非常简单的问题,但谷歌并没有在这方面提供真正的帮助

所以我的问题是,如何下载响应图像。最终的解决方案是否不使用curl并不重要,但必须使用命令行工具或库


谢谢

我已经就此联系了typeform,他们不支持通过api进行此操作。然而,他们告诉我,他们将把这个发送给他们的产品团队

然而,解决这个问题的方法是登录,然后请求文档

我是用guzzle做的,但同样的方法也适用于curl,记住你需要“记住”你得到的饼干,这在如何做到这一点中有描述

代码示例是PHP,可以给您一个想法,根据需要进行更改

采取的步骤:

  • 请求
  • 使用响应查找csrf_标记
    preg_匹配(“/loginCsrfToken\:”(.*)/”,$content,$matches)
  • 别忘了你还需要这个请求的cookies
  • 使用以下数据发布到

    form_params'=>[
    “_username'=>”{您的用户名}”,
    “_password”=>“{您的密码}”,
    “\u csrf\u令牌”=>{找到的令牌},
    “teamsWorkspaceInvitationToken”=>null,
    “\u目标\u路径”=>”https://admin.typeform.com/',
    ],

  • 如果登录成功,您应该能够下载您的文件
  • 更新: 虽然这样做有效,但我注意到登录表单中有一个recaptcha,它将打破这个流程。但我知道他们目前正在做这件事。所以,如果这对你不起作用,最好耐心一点,和/或发送一张支持票到你需要的打字本上。这可能会让他们更快地向公众发布