在登录页面

时间:2018-11-22 12:43:05

标签: curl typeform

我对使用curl或typeform API还是很陌生,因此不仅感谢anwsers,而且感谢任何链接或教程来帮助我。

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

https://admin.typeform.com/login/

使用API​​恢复下载链接本身工作正常。 我使用了命令

  

curl --request GET --url https://api.typeform.com/forms/aLsAcC/responses --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>

这只是该站点的登录页面。

奇怪的是,当我使用浏览器本身时,它工作正常,因此我怀疑我缺少某种形式的身份验证。这可能是一个非常简单的问题,但是Google在这方面并没有真正帮助。

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

谢谢。

1 个答案:

答案 0 :(得分:1)

我已经联系Typeform了,他们不支持通过API。但是他们告诉我,他们会将其发送给他们的产品团队。

但是,解决此问题的一种方法是登录槽卷曲,然后请求文档。

我是用狂吃来做的,但是同样适用于卷曲,请记住,您将需要“记住”您所获得的cookie,Save cookies between two curl requests中对此进行了说明。

代码示例是PHP,旨在为您提供一个想法,并对其进行适当更改。

采取的步骤:

  1. 将请求卷曲到https://admin.typeform.com/login/
  2. 使用响应找到csrf_token preg_match("/loginCsrfToken\: '(.*)'/", $content, $matches);
  3. 别忘了您还需要此请求的cookie
  4. 使用以下数据在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/', ],

  5. 如果登录成功,您应该可以下载文件

更新: 在此有效的同时,我注意到登录表单中有一个recaptcha,这将打破此流程。但我确实知道他们目前正在为此工作。因此,如果这对您失去了最大的帮助,请耐心等待,和/或发送支持单以进行排版,您需要这样做。这可能会使他们尽快将其发布给公众。