接口请求验证

Update time:2025-06-06 18:57:34

    对于个性化的自定义验证需求,可使用接口请求验证来完成验证。接口请求验证的接口开发要求具备基础编程能力。

    接口请求验证会请求一个配置好的验证接口并传入参数,通过检查接口返回的运算结果来决定验证是否通过。如果没有通过,接口返回的内容中还可以携带未通过验证的原因说明,被访者答题过程中可以实时看到被拒绝的原因。接口请求验证的优点是功能强大。

    接口请求验证的使用场景

    接口请求验证在以下地方都可以使用,熟练使用后能极大扩展问卷性能。

    请求方式

    下图是一个接口请求的设置,点击头部下拉列表选择请求方式,请求方式包含:GET、POST、FAKE、EMBED。

    • GET: 以 HTTP 的GET方式请求远程接口,参数会当成 queryString 拼接到 url 后面。
    • POST: 以 HTTP 的POST方式请求远程接口,参数会放到 body 中。
    • FAKE: 自定义的请求方式。
    • EMBED: 自定义的请求方式。

    GET

    设定GET请求方式并填写请求地址。随后,设置添加请求的参数名和参数值。

    答题过程中,当问卷运行使用接口请求的地方时,就会携带参数往指定地址发送一次请求,并期待接口返回以下格式的数据:

    返回结果的message属性还可添加带有特殊意义的格式,不同格式会对答题页造成不同的影响:

    • https://开头的 URL:收到返回结果后会跳到该地址,离开问卷。
    • vital:开头的消息文本:收到返回结果会弹出消息文本并终止答题。
    • 其他消息文本:以下拉警告浮窗的方式滑出该消息文本。

    POST

    设置与GET相同,只是请求方式的区别。

    FAKE

    FAKE请求是调用服务器上部署好的javascript脚本,该 javascript 脚本需要按指定的规范编写。

    下面用案例说明如何通过请求实现以下需求:

    • FAKE方式调用接口https://xxx.test.com/plugin/sum_gt0,并且该接口要求 2 个参数number1number2,接口作用是:判断 2 个数相加是否大于 0;
    • 同时,还要调用https://xxx.test.com/plugin/gt, 该接口也要求 2 个参数number1number2,接口作用是:判断 number1 数是否大于 number2。

    则需按下面的步骤操作:

    1. 首先按如下规范编写一个脚本
    1. 将该脚本部署到服务器上,保证通过https://xxx.test.com/plugin.js地址能访问到刚才的那本脚本。

    2. 将请求方式设置为FAKE,地址填写https://xxx.test.com/plugin/sum_gt0,并添加 2 个参数number1number2,并各自指定一个值。对于另个一接口则地址填写https://xxx.test.com/plugin/gt,参数也按相同规则指定。

    地址其实就是脚本所在的地址去除掉.js后缀,再接上对应的方法名。

    1. 因为脚本会部署到用户自己的服务器上,并不在本系统的可信任白名单上。这时,可以联系我们的客服,客服会把脚本所在地址加入系统白名单,系统会拒绝加载不在白名单地址的脚本。

    如果检测到脚本中包含不安全的代码,或问卷接到被访者投诉,客服会随时将其移出白名单而不实现通知。账号可能会被禁用。

    1. 如果正确完成以上步骤,则问卷运行到使用该请求的地方时,会执行脚本指定方法,得到最终计算结果。

    一般来说非常复杂的运算或者个性化场景才建议使用接口,例如传入 CRM 里的用户基本信息。

    EMBED

    EMBED方式也称为内置接口,允许在编辑器中直接编写javascript代码,达到和FAKE方式相同的效果,并且更简单。选择EMBED方式时,会显示一个下拉列表,在下拉列表中选择之前添加过的内置接口

    一般来说,代码量较少时可以使用EMBED方式。代码量很多的时候,使用FAKE方式维护起来更方便。当问卷上线后,EMBED方式必须先停止问卷才能修改,使用FAKE方式则没有这个限制。

    如果检测到问卷在EMBED方式中使用了不安全的脚本,或问卷接到被访者投诉,客服会随时将其移出白名单而不实现通知。账号可能会被禁用。

    更多EMBED方式的内容参见内置接口