答卷api推送
<p>[TOC]</p>
<p>如果您需要将答卷数据备份到自己的服务器中,可以使用本接口,将提交的答卷Post到您指定的URL,并保存。</p>
<h1>一、数据推送API</h1>
<p>使用该接口,可以将填写者提交的数据推送到指定的URL,推送数据的格式是JSON,您需要提供接受数据的URL,并且在此URL上写程序接收数据。</p>
<p>数据PostURL:由您指定,但是必须为外网可访问的地址,如:<code>https://www.wjx.cn/demo/getapipost.aspx</code> (Demo地址)</p>
<p>推送数据示例:</p>
<pre><code class="language-csharp">{"activity":"5657754","name":"问卷名称","timetaken":"528","submittime":"2016-08-23 10:01:59",
"q1":"1","q2": "测试","q3","1,2","joinid":"101812480275","totalvalue":"15","sign":""}</code></pre>
<p>推送参数说明:
注:系统会自动加上签名参数,参数名为"sign",计算方式为:sign=sha1(activity+index+推送密钥),其中activity和index代表问卷ID和作答序号,可以在推送数据中直接获取,推送密钥请联系尊享版客服获取。点击查看 <a href="https://www.wjx.cn/signsample.aspx?type=2" title="签名示例">签名示例</a>
<img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/3915f7d380f097a49399bab6b202de6c" alt="" /></p>
<h2>注意事项:</h2>
<p>(1)推送失败,可勾选“失败自动重发”选项。如连续推送失败超过<code>10</code>次,系统将不再向该url推送数据,<code>30</code>分钟后会继续发送,如果30分钟后还是失败,系统不会再次重发。</p>
<p>(2)如果使用了数据推送API,同时也使用了自定义链接参数,<code>sojumpparm</code>参数带进来的内容也会推送,无需使用“自定义链接参数”功能中的页面跳转传递参数。</p>
<p>(3)<a href="#shili">点击此处可以查看各题型的推送示例详情</a></p>
<h2>开发指南:</h2>
<p>1、PHP获取Json数据:可以使用<code>file_get_contents("php://input")</code>或者<code>$GLOBALS['HTTP_RAW_POST_DATA']</code></p>
<p>2、Python django:可以使用<code>request.raw_post_data</code>来获取<code>Json</code>数据</p>
<p>3、java代码:使用<code>org.apache.commons.io.IOUtils</code>来获取json字符串:</p>
<pre><code class="language-java">String jsonString = IOUtils.toString(request.getInputStream());
JSONObject json = new JSONObject(jsonString);</code></pre>
<p>4、C#代码:读取<code>Request.InputStream</code>数据:</p>
<pre><code class="language-csharp">Stream stream = Request.InputStream;
Byte[] byteData = new Byte[stream.Length];
stream.Read(byteData, 0, (Int32)stream.Length);
string jsonData = Encoding.UTF8.GetString(byteData);</code></pre>
<h1>二、获取题目选项对应文本内容</h1>
<p>在数据推送时,为保证推送速度及成功率,只会推送题目及选项对应的序号(推送的内容同按选项序号下载的内容一致,选择题为序号填空题为文本),不会推送题目及选项的文本内容,如需获取题目选项序号和文本的对应值,可以使用以下接口获取:</p>
<p>获取接口:<code>https://www.wjx.cn/handler/IllustrateApi.ashx?activityID=问卷ID</code></p>
<p>序号解释:</p>
<p>1.<code>q1、q2、q3</code>以此类推,代表每个题目的题干文字;</p>
<p>2.选择类的题目,<code>q1#1、q1#2、q1#3</code>分别代表第一个题的第一个、第二个、第三个选项;</p>
<p>3.多项填空题,只提供题干整体文本;</p>
<p>4.如果是矩阵单选或矩阵多选题,<code>q1</code>是题干文本,<code>q1_1,q1_2</code>是矩阵题的第一个、第二个左行标题,<code>q1_1#1,q1_1#2</code>分别是矩阵题第一个左行标题的,第一个选项、第二个选项内容。</p>
<p>5.矩阵填空,数据推送的时候直接推送的是选项内容,无需获取选项文本。类似的还有矩阵滑动条、表格下拉框、表格数值、表格文本题。</p>
<p>6.考试问卷,不包含正确答案的信息。</p>
<p>获取接口(JSON格式):<code>https://www.wjx.cn/handler/IllustrateApi.ashx?activityID=问卷ID&JSON=1</code></p>
<h1>三、数据推送DEMO</h1>
<h2>1、设置测试推送地址</h2>
<p>将该地址: <code>https://www.wjx.cn/demo/getapipost.aspx</code> 放在数据推送的目标地址。注意,该地址仅用于测试,只显示最近<code>300</code>条推送数据。</p>
<h2>2、查看推送结果</h2>
<p>访问该地址:<code>https://www.wjx.cn/demo/getapipost.aspx</code> 可以查看测试DEMO获取到的数据详情。</p>
<h2>注意:</h2>
<p>测试环境,请勿推送敏感数据。</p>
<div id = "shili"></div>
<h1>四、各题型推送示例详情</h1>
<table>
<thead>
<tr>
<th style="text-align: left;">字段</th>
<th style="text-align: left;">说明</th>
<th>示例</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">activity</td>
<td style="text-align: left;">问卷ID</td>
<td>"22913715"(22913715为示例问卷id)</td>
</tr>
<tr>
<td style="text-align: left;">name</td>
<td style="text-align: left;">问卷名称</td>
<td>"测试数据推送api"(测试数据推送api为示例名称)</td>
</tr>
<tr>
<td style="text-align: left;">joinid</td>
<td style="text-align: left;">参与序号</td>
<td>"101488475952"(序号为问卷星所有参与者的序号)</td>
</tr>
<tr>
<td style="text-align: left;">timetaken</td>
<td style="text-align: left;">所用时间</td>
<td>"64"(64是参与时间是64秒)</td>
</tr>
<tr>
<td style="text-align: left;">submittime</td>
<td style="text-align: left;">提交答卷时间</td>
<td>"2018-04-23 19:57:52</td>
</tr>
<tr>
<td style="text-align: left;">totalvalue</td>
<td style="text-align: left;">总分</td>
<td>"59"</td>
</tr>
<tr>
<td style="text-align: left;">sojumpparm</td>
<td style="text-align: left;">来源详情</td>
</tr>
<tr>
<td style="text-align: left;">ipaddress</td>
<td style="text-align: left;">ip地址</td>
</tr>
<tr>
<td style="text-align: left;">nickname</td>
<td style="text-align: left;">微信昵称</td>
</tr>
<tr>
<td style="text-align: left;">thirdusername</td>
<td style="text-align: left;">第三方昵称</td>
<td>使用了密码列表,这里会显示每个密码列表对应的附加属性</td>
</tr>
</tbody>
</table>
<p>如使用了用户体系,会推送以下数据:</p>
<table>
<thead>
<tr>
<th style="text-align: left;">字段</th>
<th style="text-align: left;">说明</th>
</tr>
</thead>
<tbody>
<tr>
<td style="text-align: left;">thirdusername</td>
<td style="text-align: left;">用户ID</td>
</tr>
<tr>
<td style="text-align: left;">realname</td>
<td style="text-align: left;">姓名</td>
</tr>
<tr>
<td style="text-align: left;">relDept</td>
<td style="text-align: left;">部门</td>
</tr>
<tr>
<td style="text-align: left;">relExt</td>
<td style="text-align: left;">附加信息</td>
</tr>
</tbody>
</table>
<h2>单选题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/4258280665215cc73e6a5e77294ae9c5" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q1":"1"</code></pre>
<p>其中q1表示第一题,值“1”表示用户选择了第一个选项。</p>
<h2>多选题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/9ba57e1192047de48b5e030032bc0bae" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q2":"1,2"</code></pre>
<p>其中q2表示第2题,值“1,2”表示用户同时选择了第1个和第2个选项。</p>
<h2>单项填空题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/2ca9ccd8e6d434eddb49dc782ed24171" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q3":"测试"</code></pre>
<p>其中q3表示第3题,值“测试”表示用户输入的内容。</p>
<h2>矩阵量表题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/1cdd88cec30d51a48260f8bc64621646" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q4_1":"1","q4_2":"1"</code></pre>
<p>其中q4_1表示第4题的第一个小题,即外观这个题目,值“1”表示选择第一个选项,q4_2表示第4题的第二个小题,即功能这个题目,值“1”表示选择第一个选项。</p>
<h2>矩阵单选题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/83c59d79b3f41555964690c022353399" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q5_1":"5","q5_2":"5"</code></pre>
<p>其中q5_1表示第5题的第一个小题,即外观这个题目,值“5”表示选择第五个选项,q5_2表示第5题的第二个小题,即功能这个题目,值“5”表示选择第五个选项。</p>
<h2>矩阵填空题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/e89cf6792397a776a4145cf7f793abe4" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q6_1":"填空1测试","q6_2" :"填空2测试"</code></pre>
<p>其中q6_1表示第6题的第一个空,值“填空1测试”表示用户输入的内容, q6_2表示第6题的第二个空,值“填空2测试”表示用户输入的内容。</p>
<h2>矩阵滑动条:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fecbdd5e296c6f47076c608c0ddaaf57" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q7_1":"62","q7_2":"17"</code></pre>
<p>其中q7_1表示第7题的第一个小题,62表示第一小题选择的分数是62分,q7_2表示第7题的第二个小题,17表示第一小题选择的分数是17分。</p>
<h2>表格下拉框:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/ef3506c4447da322213d11d9c4bde80c" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q8_1_1":"很满意","q8_1_2":"很满意","q8_1_3":"很满意","q8_1_4":"很满意","q8_1_5":"很满意",
"q8_2_1":"满意","q8_2_2":"满意","q8_2_3":"满意","q8_2_4":"满意","q8_2_5":"满意"</code></pre>
<p>其中q8_1_1表示第8题的第一个小题的第一个选项,即在外观这个小题中百度这个选项,选择的是“很满意”,依次类推。</p>
<h2>表格数值题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/6132bd46cfe27718627d61f21a1360e7" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q9_1_1":"1","q9_1_2":"1","q9_1_3":"1","q9_1_4":"1","q9_1_5":"1","q9_2_1":"2","q9_2_2":"2",
"q9_2_3":"2","q9_2_4":"2","q9_2_5":"2"</code></pre>
<p>其中q9_1_1表示第9题的第一个小题的第一个选项,即在外观这个小题中百度这个选项,填写的是“1”,依次类推。</p>
<h2>表格文本题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/0ead67dd5f60f5b97c73505052acdc5f" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q10_1_1":"1","q10_1_2":"1","q10_1_3":"1","q10_1_4":"1","q10_1_5":"1","q10_2_1":"2","q10_2_2":"2",
"q10_2_3":"2","q10_2_4":"2","q10_2_5":"2"</code></pre>
<p>其中q10_1_1表示第10题的第一个小题的第一个选项,即在外观这个小题中百度这个选项,填写的是“1”,依次类推。</p>
<h2>上传文件题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/751d6adc93271f055e1825b5b88ad67d" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q11":"http://pubuserqiniu.paperol.cn/22913715_2_q11_-bMdVn-C60qTgxjbRU5Bqg.png?download/2_11_logo.png&e=1524571072&token=-kY3jr8KMC7l3KkIN3OcIs8Q4s40OfGgUHr1Rg4D:su2PbUDBsALS9lbLzKAniWeEiys="</code></pre>
<p>其中q11表示的是第十一题,后面的链接为上传文件的下载地址。</p>
<h2>NPS量表题测试:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fbc8249d4efd154e34371338ce0830b8" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q12":"10"</code></pre>
<p>其中q12表示第十二题,10表示选择的内容为10分。</p>
<h2>评分单选题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/32f3c632d1aa39a12db092e2a4b4cb0c" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q13":"1"</code></pre>
<p>其中q13表示第13题,值“1”表示用户选择了第一个选项;</p>
<h2>评分多选题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fe1602f1c91a46d88f09e5f8ce365444" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q14":"1,2"</code></pre>
<p>其中q14表示第14题,值“1,2”表示用户同时选择了第1个和第2个选项。</p>
<h2>排序题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/fb20df4f64c6fceff1318458be4ae4fc" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q15":"1,2"</code></pre>
<p>其中q15表示第15题,值“1,2”表示选项的排序为1、2。</p>
<h2>多级下拉框:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/80e9be7e92c109f8a993838eed141132" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q16":"中国-湖南"</code></pre>
<p>其中q16表示第16题,"中国-湖南"表示一级选项中选择的是中国,二级选项中选择的是湖南。</p>
<h2>比重题测试:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/00249222db724144493d39a1f47a1f31" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q17_1":"33","q17_2":"67"</code></pre>
<p>其中q17_1表示第17题的第一个小题,即外观这个题目,选择的比重为33,q17_2表示第17题的第二个小题,即性能这个题目,选择的比重为67。</p>
<h2>滑动条:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/11e62528e086416914444c123621220d" alt="" />
推送形式:</p>
<pre><code class="language-csharp">q18":"59"</code></pre>
<p>其中q18表示第18题,选择的值为59。</p>
<h2>情景随机题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/ebc8e8e031fc4517f5db96d01d0dd8d6" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q19":"1"</code></pre>
<p>其中q19表示第19题,1表示随机的情景为情景1。</p>
<h2>商品题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/aa3baca8a88574cc63f2a3f2ff42e6da" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q20":"1^1,2^1,3^1","index":"3"</code></pre>
<h2>评价题:</h2>
<p><img src="https://www.showdoc.com.cn/server/api/attachment/visitfile/sign/32e1861707087dc28a84a2800e792aee" alt="" />
推送形式:</p>
<pre><code class="language-csharp">"q1_3":"业务不熟","q1":"3"</code></pre>
<p>其中q1表示第一题,3表示选择了第三个选项q1_3表示第三个选项中,选择了“业务不熟”这个标签</p>
<h2>测试问卷链接</h2>
<p><code>https://www.wjx.cn/jq/22913715.aspx</code></p>
<h2>查看推送结果</h2>
<p><code>http://wjxapi.paperol.cn/data.txt</code> (根据id22913715搜索即可)</p>