【问题标题】:Post request to Typeform failing due to Invalid payload由于无效负载,向 Typeform 发布请求失败
【发布时间】:2019-11-04 09:17:56
【问题描述】:

我一直在尝试向typeform 发送 POST 请求,但我不断收到以下输出:

{"code":"INVALID_PAYLOAD"}

我已尝试以下方法,但未能成功完成请求。使用标题没有不同的结果。

如何正确格式化我的有效载荷?

import requests
import time

epochTime = int(time.time())
token = requests.get("https://typeformtutorial.typeform.com/app/form/result/token/aA7Vx9/default")

data = {
    "signature": token,
    "form_id": "aA7Vx9",
    "landed_at": epochTime,
    "answers": [
        {
            "field": {
                "id": "42758279",
                "type": "yes_no"
            },
            "type": "boolean",
            "boolean": True
        },
        {
            "field": {
                "id": "42758410",
                "type": "short_text"
            },
            "type": "text",
            "text": "Hi"
        }
    ]
}
r = requests.post("https://typeformtutorial.typeform.com/app/form/submit/aA7Vx9",
    data=data)
print(r.text) #.... INVALID_PAYLOAD

【问题讨论】:

    标签: python python-requests typeform


    【解决方案1】:

    您的代码似乎有两个问题:

    首先,data 字典中的 signature 键似乎没有正确的值,所以我建议更换:

    "signature": token,
    

    "signature": token.text,
    

    其次,typeformtutorial 似乎期望接收 JSON 字符串,因此您应该替换:

    requests.post("https://typeformtutorial.typeform.com/app/form/submit/aA7Vx9",data=data)
    

    requests.post("https://typeformtutorial.typeform.com/app/form/submit/aA7Vx9",json=data)
    

    希望这会有所帮助!

    【讨论】:

    • 现在好像不行了。请告诉我现在如何从 typeform 中获取令牌?
    猜你喜欢
    • 2016-09-04
    • 2016-06-18
    • 1970-01-01
    • 1970-01-01
    • 2018-07-30
    • 2020-04-30
    • 2018-10-14
    • 2021-12-06
    • 2017-09-26
    相关资源
    最近更新 更多