我对使用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并不重要,但是必须使用命令行工具或库。
谢谢。
答案 0 :(得分:1)
我已经联系Typeform了,他们不支持通过API。但是他们告诉我,他们会将其发送给他们的产品团队。
但是,解决此问题的一种方法是登录槽卷曲,然后请求文档。
我是用狂吃来做的,但是同样适用于卷曲,请记住,您将需要“记住”您所获得的cookie,Save cookies between two curl requests中对此进行了说明。
代码示例是PHP,旨在为您提供一个想法,并对其进行适当更改。
采取的步骤:
preg_match("/loginCsrfToken\: '(.*)'/", $content, $matches);
使用以下数据在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/',
],
更新: 在此有效的同时,我注意到登录表单中有一个recaptcha,这将打破此流程。但我确实知道他们目前正在为此工作。因此,如果这对您失去了最大的帮助,请耐心等待,和/或发送支持单以进行排版,您需要这样做。这可能会使他们尽快将其发布给公众。