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

gkl3eglg  于 2023-03-03  发布在  其他
关注(0)|答案(1)|浏览(187)

无论是curl还是typeform API,我都是新手,所以我不仅希望得到答案,还希望得到任何链接或教程,以帮助我前进。
我面临的问题是,当我尝试使用curl或wget在typeform上获取上传的图像时,它并不保存图像,而是保存typeform的登录页面
https://admin.typeform.com/login/
使用API恢复下载链接本身工作正常。
curl --请求GET --url https://api.typeform.com/forms/aLsAcC/responses--报头“授权:承载人{我的Id}'
这将返回一个包含所有响应的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>

它只是网站的登录页面。
奇怪的是,当我使用浏览器时,它运行得很好,所以我怀疑我错过了某种形式的认证。这可能是一个非常简单的问题,但谷歌在这方面并没有真正提供帮助。
所以我的问题是,如何下载响应图像,最终的解决方案是否使用curl并不重要,但命令行工具或库是必须的。
谢谢。

fzwojiic

fzwojiic1#

我已经联系了TypeForm,他们不支持API。但是他们告诉我,他们会把这个发送给他们的产品团队。
但是,一种解决方法是通过curl登录,然后请求文档。
我这样做与guzle,但同样适用于 curl ,请记住,您将需要“记住”的饼干,你得到的是在Save cookies between two curl requests中描述如何做到这一点。
代码示例是PHP给予大家出个主意,改一下就合适了.
应采取的步骤:
1.向https://admin.typeform.com/login/发出 curl 请求
1.使用响应查找csrf_token preg_match("/loginCsrfToken\: '(.*)'/", $content, $matches);
1.不要忘记,您还需要此请求的Cookie
1.将以下数据提交到https://admin.typeform.com/login_check
form_params' => [ '_username' => '{YOUR USERNAME}', '_password' => '{YOUR PASSWORD}', '_csrf_token' => {THE FOUND TOKEN}, 'teamsWorkspaceInvitationToken' => null, '_target_path' => 'https://admin.typeform.com/', ],
1.如果登录成功,您应该能够下载您的文件
更新:虽然这个工作,我注意到登录表单有一个captcha,这将打破这个流程。但我知道,他们实际上是在这一刻工作。所以如果这停止工作,你最好耐心,和/或发送一个支持票到typeform你需要这个。这可能会使他们发布这对公众更快。

相关问题