填写类型表时签名令牌出错
error with signature token when filling a typeform
我正在学习 Python 并尝试使用 Python 请求填写类型表单,但是我收到此错误响应:
{"code":"VALIDATION_ERROR","description":"The provided body is malformed.","details":[{"code":"INVALID_PAYLOAD","description":"signature mismatch","in":"BODY","field":".signature"}]}
但是,当我将 token.text
值手动输入 data
时,它起作用了。以编程方式将令牌添加到有效负载时,我无法使其正常工作,即使尝试使用 str()
也无法正常工作。
代码如下:
import requests
import time
epochTime = int(time.time())
token = requests.get("https://mehdikhireddine.typeform.com/app/form/result/token/OcotDC/default")
final = token.text
print(token.text)
data = { "signature": final,
"form_id": "OcotDC",
"landed_at": epochTime,""
"answers": [
{
"field": {
"id": "nDoisfzMsrBP",
"type": "short_text"
},
"type": "text",
"text": "mehdilemoi"
},
{
"field": {
"id": "iCW4s6Fc37OL",
"type": "legal"
},
"type": "boolean",
"boolean": True
}
]
}
r = requests.post("https://mehdikhireddine.typeform.com/app/form/submit/OcotDC", json=data)
print(r.text)
如果您在从 HTTPS 响应中获取 token
之前存储 epochTime
,就会出现此问题,可能是因为服务器无法匹配签名和时间,导致 "signature mismatch"
.
您可以通过在收到 token
响应后 当前时间 来解决此问题,即:
token = requests.get("https://mehdikhireddine.typeform.com/app/form/result/token/OcotDC/default")
epochTime = int(time.time())
输出:
{"message":"success"}
请注意,如果在获得响应和获得 epochTime
之间的时间过长,这可能仍会间歇性地失败。
我正在学习 Python 并尝试使用 Python 请求填写类型表单,但是我收到此错误响应:
{"code":"VALIDATION_ERROR","description":"The provided body is malformed.","details":[{"code":"INVALID_PAYLOAD","description":"signature mismatch","in":"BODY","field":".signature"}]}
但是,当我将 token.text
值手动输入 data
时,它起作用了。以编程方式将令牌添加到有效负载时,我无法使其正常工作,即使尝试使用 str()
也无法正常工作。
代码如下:
import requests
import time
epochTime = int(time.time())
token = requests.get("https://mehdikhireddine.typeform.com/app/form/result/token/OcotDC/default")
final = token.text
print(token.text)
data = { "signature": final,
"form_id": "OcotDC",
"landed_at": epochTime,""
"answers": [
{
"field": {
"id": "nDoisfzMsrBP",
"type": "short_text"
},
"type": "text",
"text": "mehdilemoi"
},
{
"field": {
"id": "iCW4s6Fc37OL",
"type": "legal"
},
"type": "boolean",
"boolean": True
}
]
}
r = requests.post("https://mehdikhireddine.typeform.com/app/form/submit/OcotDC", json=data)
print(r.text)
如果您在从 HTTPS 响应中获取 token
之前存储 epochTime
,就会出现此问题,可能是因为服务器无法匹配签名和时间,导致 "signature mismatch"
.
您可以通过在收到 token
响应后 当前时间 来解决此问题,即:
token = requests.get("https://mehdikhireddine.typeform.com/app/form/result/token/OcotDC/default")
epochTime = int(time.time())
输出:
{"message":"success"}
请注意,如果在获得响应和获得 epochTime
之间的时间过长,这可能仍会间歇性地失败。