[关闭]
@dooy 2020-02-16T13:20:04.000000Z 字数 9607 阅读 303

钉钉批改网合作

合作 接口


1.约定

环境 接口域名
测试环境 http://qq.pigai.org
生产环境 https://open.pigai.org

1.1请求方式

请求使用POST请求;openKey 要使用对称加密。 请求和数据传输使用 JSON。

POST http://url.com/api?sign=签名

1.2签名

提交过来的json字符串 跟 openKey 加密

  1. <?php
  2. $str= file_get_contents("php://input");
  3. $sign = md5($str . $openKey);

1.3统一返回格式

字段 类型 说明
error int 错误编号 默认没有错误0
errorDes String 错误说明 默认为空
data json 返回数据内容

2.授权用户

参考
https://ding-doc.dingtalk.com/doc#/serverapi3/hv357q
https://ding-doc.dingtalk.com/doc#/serverapi3/mrugr3

3.老师作文题目授权与同步

post http://url.com/ding/request?sign=签名

字段 类型 说明
operate String 操作 insert upate delete
openId String 钉钉用户唯一ID
dingWorkId String 钉钉作文题目唯一ID
workTitle String 作文题目
workRequest Text 作文要求
workType int 作文类型 1普通作文,11 翻译,21朗读
startTime long 开始时间 13位毫秒级时间戳
endTime long 截止时间 13位毫秒级时间戳
minimumWords int 最少字数
maximumWords int 最多字数
overReduceScore bool 超过最大字数是否扣分
correctWay int 批改网方式 1:系统一次性+教师一次性批改,2:系统多次+教师一次 3:系统多次+教师多次
submitLimit int 提交限制次数 默认为0
fullMarks int 满分
visibleOthersTiming int 作业公开 1 提交前 2提交后 3截止时间后
createTime long 布置作文的时间 13位毫秒级时间戳
formula int 公式 每个公式对应的值 请参考公式对应表
expectAverage int 期望均分
expectMin int 期望最低分
expectMax int 期望最高分

作文公式(formula)对应表

公式名称
1 默认公式
42 本科-考研打分公式
41 本科-专业八级打分公式
34 本科-小作文打分公式
32 大学-六级打分公式
31 大学-四级打分公式
27 本科-专业四级打分公式
105 雅思-小作文打分公式
81 托福-独立作文打分公式
80 雅思-大作文打分公式
--以下供参考--
51 应用文-书信体打分公式
39 高中-作文打分公式
70 高中-SAT打分公式
40 初中-作文打分公式-初一
69 初中-作文打分公式-初二
71 初中-作文打分公式-初三
48 小学-作文打分公式
67 高职-三级作文
56 高职-B级打分公式
55 高职-A级打分公式
91 人大附创意写作打分公式
106 辽宁高考扫描识别打分公式
90 高中应用文打分公式
89 读后续写打分公式
88 手写识别打分公式(高中)
87 默认公式2016新版
85 小学-五六年级打分公式
84 小学-三四年级打分公式
83 人大附中(副词优先)打分公式

返回体

  1. {
  2. "error": 0,
  3. "errorDes": "",
  4. "data": {
  5. "dingWorkId":"1234",
  6. "pigaiWorkId":"1234"
  7. }
  8. }

4.学生提交作文授权

post http://url.com/ding/essay?sign=签名

字段 类型 说明
operate String 操作 insert delete
openId String 钉钉用户唯一ID
dingWorkId String 钉钉老师布置作文题目唯一ID
dingEssayId String 钉钉学生提交作文内容唯一ID
essayTitle String 作文题目
essayContent Text 作文内容
essayVersion int 作文版本(提交次数)
submitTime long 作文的提交时间 13位毫秒级时间戳
uuid string 请求的唯一标识
  1. {
  2. "error": 0,
  3. "errorDes": "",
  4. "data": {
  5. "dingEssayId": "d-pigai-1234"
  6. }
  7. }

提交成功后
批改网的 作文内容ID 跟分析结果会异步提交返回

5.作文异步分析返回

钉钉需要提供异步接收接口

POST http://30.40.210.45:7001/pigai/sync/callback/work?sign=XXXX

返回

字段 类型 说明
openId String 钉钉用户唯一ID
dingWorkId String 作业题id
dingEssayId String 作文id
pigaiEssayId String 批改网的作文id
essayVersion int 作文的版本
pigaiAnalysis Json 分析结果json 说明参考下面的JSON
uuid String 请求的唯一

返回的pigaiAnalysis

  1. {
  2. "score": 79.5, //总得分 满分来自设置
  3. "score100": 79.5, //总得分 满分100
  4. "scoreCat": { //四个维度
  5. "1": {
  6. "name": "词汇",
  7. "score": 0.8426485
  8. },
  9. "2": {
  10. "name": "句子",
  11. "score": 0.74554825
  12. },
  13. "3": {
  14. "name": "篇章结构",
  15. "score": 0.7881277
  16. },
  17. "4": {
  18. "name": "内容相关",
  19. "score": 0.7233994
  20. }
  21. },
  22. "comment": "采用了适当的衔接手法,层次清晰;句式变化多样,句法方面做的很棒;作者词汇基本功很好,高级词汇表达也比较恰当。", //总评
  23. "sentences": [
  24. {
  25. "sid": 0, // 第几句, 0开始
  26. "pid": 1, // 段落, 1开始
  27. "text": "Firstly, no accomplishment can be achieved in a transitory time, and success asks for continuous industrious work and efforts.",
  28. "comment": [
  29. {
  30. "class": "error_trp",
  31. // 四大类: warn 警告,error 错误,error_trp 提示,great
  32. "cat": "学习提示",
  33. "msg": "易混词汇: <b>effort</b>, trouble, pains, endeavour, struggle 均表示“努力”之意。",
  34. "word_list": "efforts", //关键词
  35. "rank": 0
  36. }
  37. ]
  38. },
  39. {
  40. "sid": 1,
  41. "pid": 1,
  42. "text": "One can taste the feeling of success only when he is more diligent than others.",
  43. "comment": [
  44. {
  45. "class": "error_trp",
  46. "cat": "推荐表达",
  47. "msg": "<b>only</b> :&nbsp;<span class='suggest'>just/merely/barely/singly/solely/rarely</span>",
  48. "word_list": "only",
  49. "rank": 0
  50. },
  51. {
  52. "class": "error_trp",
  53. "cat": "学习提示",
  54. "msg": "易混词汇: <b>diligent</b>, industrious 均表示“勤奋的”之意。",
  55. "word_list": "diligent",
  56. "rank": 0
  57. }
  58. ]
  59. },
  60. {
  61. "sid": 2,
  62. "pid": 1,
  63. "text": "It is not only an attempt to theory discussion, but also the need of practice.",
  64. "comment": [
  65. {
  66. "class": "error_trp",
  67. "cat": "学习提示",
  68. "msg": "易混词汇: drill, exercise, <b>practice</b>, training, discipline 都有“练习,训练,锻炼”之意。",
  69. "word_list": "practice",
  70. "rank": 0
  71. }
  72. ]
  73. },
  74. {
  75. "sid": 3,
  76. "pid": 1,
  77. "text": "As the saying goes,\"Genius only means hard-working all one's life.\"",
  78. "comment": [
  79. {
  80. "class": "error_trp",
  81. "cat": "推荐表达",
  82. "msg": "<b>hard-working</b> :&nbsp;<span class='suggest'>diligent/assidious/industrious</span>",
  83. "word_list": "hard-working",
  84. "rank": 0
  85. },
  86. {
  87. "class": "error_trp",
  88. "cat": "拓展辨析",
  89. "msg": "动名搭配 mean...life 在语料库中出现过<a target=\"_blank\" href=\"http://www.pigai.org/corpus/snt/?q=mean life/von\"> 34</a> 次",
  90. "word_list": "",
  91. "rank": 0
  92. },
  93. {
  94. "class": "error_trp",
  95. "cat": "推荐表达",
  96. "msg": "<b>only</b> :&nbsp;<span class='suggest'>just/merely/barely/singly/solely/rarely</span>",
  97. "word_list": "only",
  98. "rank": 0
  99. },
  100. {
  101. "class": "error_trp",
  102. "cat": "推荐表达",
  103. "msg": "<b>hard-working</b> :&nbsp;<span class='suggest'>assiduous</span>",
  104. "word_list": "hard-working",
  105. "rank": 0
  106. }
  107. ]
  108. },
  109. {
  110. "sid": 4,
  111. "pid": 1,
  112. "text": "From my own perspective, firstly, efforts is more important, if you have not acquired the knowledge, your talent will not be used, but will be devoid of silence.",
  113. "comment": [
  114. {
  115. "class": "error",
  116. "cat": "句子错误",
  117. "msg": "请检查<b>is</b>,确认主谓一致。",
  118. "word_list": "is",
  119. "rank": 100
  120. },
  121. {
  122. "class": "error_trp",
  123. "cat": "推荐表达",
  124. "msg": "<b>if</b> :&nbsp;<span class='suggest'>provided that</span>",
  125. "word_list": "if",
  126. "rank": 0
  127. },
  128. {
  129. "class": "error_trp",
  130. "cat": "拓展辨析",
  131. "msg": "动名搭配 acquire...knowledge 在语料库中出现过<a target=\"_blank\" href=\"http://www.pigai.org/corpus/snt/?q=acquire knowledge/von\"> 37</a> 次",
  132. "word_list": "",
  133. "rank": 0
  134. }
  135. ]
  136. },
  137. {
  138. "sid": 5,
  139. "pid": 1,
  140. "text": "To name only a few, Edison said,\"Success is 1% inspiration and perspiration\".",
  141. "comment": [
  142. {
  143. "class": "error_trp",
  144. "cat": "推荐表达",
  145. "msg": "<b>only</b> :&nbsp;<span class='suggest'>just/merely/barely/singly/solely/rarely</span>",
  146. "word_list": "only",
  147. "rank": 0
  148. },
  149. {
  150. "class": "error_trp",
  151. "cat": "学习提示",
  152. "msg": "易混词汇: little, <b>few</b>, several 均含“少量的”之意。",
  153. "word_list": "few",
  154. "rank": 0
  155. }
  156. ]
  157. },
  158. {
  159. "sid": 6,
  160. "pid": 1,
  161. "text": "It demonstrates the importance of hard-working.",
  162. "comment": [
  163. {
  164. "class": "warn",
  165. "cat": "语法警示",
  166. "msg": "确认<b>of hard-working</b>符合语法规范。",
  167. "word_list": "of hard-working .",
  168. "rank": 99
  169. },
  170. {
  171. "class": "error_trp",
  172. "cat": "拓展辨析",
  173. "msg": "动名搭配 demonstrate...importance 在语料库中出现过<a target=\"_blank\" href=\"http://www.pigai.org/corpus/snt/?q=demonstrate importance/von\"> 35</a> 次",
  174. "word_list": "",
  175. "rank": 0
  176. },
  177. {
  178. "class": "error_trp",
  179. "cat": "推荐表达",
  180. "msg": "<b>hard-working</b> :&nbsp;<span class='suggest'>assiduous</span>",
  181. "word_list": "hard-working",
  182. "rank": 0
  183. }
  184. ]
  185. },
  186. {
  187. "sid": 7,
  188. "pid": 1,
  189. "text": "Also be said that God rewards the dilligent.",
  190. "comment": [
  191. {
  192. "class": "error",
  193. "cat": "词语错误",
  194. "msg": "请检查<b>dilligent</b>,确认拼写正确。",
  195. "word_list": "dilligent",
  196. "rank": 100
  197. }
  198. ]
  199. },
  200. {
  201. "sid": 8,
  202. "pid": 1,
  203. "text": "What's more, every single person is different and we all have kinds of unique talent.",
  204. "comment": [
  205. {
  206. "class": "great",
  207. "cat": "闪光短语",
  208. "msg": "<b>what's more</b>有助于提高文章衔接",
  209. "word_list": "^ what 's more ,",
  210. "rank": 0
  211. },
  212. {
  213. "class": "error_trp",
  214. "cat": "拓展辨析",
  215. "msg": "动名搭配 have...kind 在语料库中出现过<a target=\"_blank\" href=\"http://www.pigai.org/corpus/snt/?q=have kind/von\"> 809</a> 次",
  216. "word_list": "",
  217. "rank": 0
  218. },
  219. {
  220. "class": "great",
  221. "cat": "闪光短语",
  222. "msg": "<b>what's more</b>意思是<b>另外,而且…</b>,是经典补充类词组。",
  223. "word_list": "what 's more",
  224. "rank": 0
  225. }
  226. ]
  227. },
  228. {
  229. "sid": 9,
  230. "pid": 1,
  231. "text": "There is one more point, some will soar-but many more than previously will not find work to match their talents, qualifications or even quite modest ambitions for a job and a home.",
  232. "comment": [
  233. {
  234. "class": "error_trp",
  235. "cat": "推荐表达",
  236. "msg": "<b>or</b> :&nbsp;<span class='suggest'>otherwise/if not/before/or else</span>",
  237. "word_list": "or",
  238. "rank": 0
  239. },
  240. {
  241. "class": "error_trp",
  242. "cat": "推荐表达",
  243. "msg": "<b>quite</b> :&nbsp;<span class='suggest'>fairly</span>",
  244. "word_list": "quite",
  245. "rank": 0
  246. },
  247. {
  248. "class": "error_trp",
  249. "cat": "拓展辨析",
  250. "msg": "动名搭配 match...talent 在语料库中出现过<a target=\"_blank\" href=\"http://www.pigai.org/corpus/snt/?q=match talent/von\"> 17</a> 次",
  251. "word_list": "",
  252. "rank": 0
  253. }
  254. ]
  255. },
  256. {
  257. "sid": 10,
  258. "pid": 1,
  259. "text": "Try to find the best way possible to convert your talent to something that gives service to people, Obviously, success always smiles upon people who are diligent.",
  260. "comment": [
  261. {
  262. "class": "error",
  263. "cat": "大小写错误",
  264. "msg": "请检查<b>Obviously</b>,疑似大小写错误",
  265. "word_list": "Obviously",
  266. "rank": 100
  267. },
  268. {
  269. "class": "error_trp",
  270. "cat": "拓展辨析",
  271. "msg": "<b>people</b>表示“人,民族”。查看与<a href=\"http://bbs.pigai.org/forum.php?mod=viewthread&tid=12942&page=1&extra=#pid30263\" target=\"_blank\"><b>person</b></a>的区别。",
  272. "word_list": "people",
  273. "rank": 0
  274. }
  275. ]
  276. }
  277. ]
  278. }

6.学生提交作文与同步分析

仅供测试环境,生产环境请使用异步分析

post http://url.com/ding/essaySynchronize?sign=签名

字段 类型 说明
operate String 操作 insert delete
openId String 钉钉用户唯一ID
dingWorkId String 钉钉老师布置作文题目唯一ID
dingEssayId String 钉钉学生提交作文内容唯一ID
essayTitle String 作文题目
essayContent Text 作文内容
essayVersion int 作文版本(提交次数)
submitTime long 作文的提交时间 13位毫秒级时间戳
uuid string 请求的唯一标识

返回体

  1. {
  2. "error": 0,
  3. "errorDes": "",
  4. "data": {
  5. "dingEssayId": "d-pigai-1234"
  6. ....#请参考 5章节的返回
  7. }
  8. }

7.相似标签

适用于老师作文列表上打相似标签、单篇文章打标签

post http://url.com/ding/similarTag?sign=签名

提交体

  1. {
  2. "openId":"钉钉用户唯一ID",
  3. "similar":2000, //大于20% 才相似 这个数字不低于 200020%)
  4. "list":[ //最大数组不超过200
  5. {
  6. "dingEssayId":"pigai123",
  7. "essayVersion":1
  8. }
  9. ,{
  10. "dingEssayId":"pigai124",
  11. "essayVersion":2
  12. }
  13. ]
  14. }

返回体

  1. {
  2. "error": 0,
  3. "errorDes": "",
  4. "data": {
  5. "list":[
  6. {
  7. "dingEssayId":"pigai123",
  8. "essayVersion":1
  9. "maxSimilar":0 //未查询到相似
  10. }
  11. ,{
  12. "dingEssayId":"pigai124",
  13. "essayVersion":2
  14. "maxSimilar":9812 //相似为98.12%
  15. }
  16. ]
  17. }
  18. }

8.相似详情

这个适用于单篇文章,查看相似详情

post http://url.com/ding/similar?sign=签名

字段 类型 说明
openId String 钉钉用户唯一ID
dingEssayId String 钉钉学生提交作文内容唯一ID
essayVersion int 作文版本(提交次数)

返回体

  1. {
  2. "error": 0,
  3. "errorDes": "",
  4. "data": {
  5. "dingEssayId": "d-pigai-1234",
  6. "pigaiEssayId","789"
  7. "essayVersion":4,
  8. "similar":{
  9. "max":9852, //最大相似 整数9852 98.5%
  10. "list":[ //相似列表 会把相似度大于20% 由高到低排序 最多列5
  11. {
  12. "pigaiEssayId":"123",
  13. "essayVersion":1,
  14. "similar":9852,
  15. "name":"李明",
  16. "school":"xx大学"
  17. }
  18. ,
  19. {
  20. "pigaiEssayId":"124",
  21. "essayVersion":1,
  22. "similar":9033,
  23. "name":"李可",
  24. "school":"xx大学"
  25. }
  26. ],
  27. "detail":{
  28. "doc1":{ //原文
  29. "pigaiEssayId":"789",
  30. "essayVersion":4,
  31. "name":"李明",
  32. "school":"xx大学",
  33. "title":"essayTitle",
  34. "content":"这里是相似内容用<b>高亮</b>分段使用\n来分段"
  35. },
  36. "doc2":{ //相似他文,如果未指定他文 默认是最高的
  37. "pigaiEssayId":"123",
  38. "essayVersion":1,
  39. "similar":9852,
  40. "name":"李明",
  41. "school":"xx大学",
  42. "title":"essayTitle",
  43. "content":"这里是相似内容用<b>高亮</b>分段使用\n来分段"
  44. }
  45. }
  46. }
  47. }
  48. }

9.异步返回

9.1获取token

参考 https://ding-doc.dingtalk.com/doc#/serverapi2/eev437
ak sk 请更管理员获取

9.2提交返回

post线上:https://oapi.dingtalk.com/topapi/circle/enwork/update

post测试: https://pre-oapi.dingtalk.com/topapi/circle/enwork/update?access_token=c34f610bba4433eaa127e0610e429af2

提交

  1. {
  2. "open_update_dto": {
  3. "work_id": "5999065",
  4. "post_id": "924084530",
  5. "open_id": "LtR5WtiPcTuAiSiiZWqNVEldQiEiE",
  6. "similarity": "{}", //相似
  7. "version_id": 1,
  8. "pigai_analysis": "{}" //分析结果
  9. }
  10. }
添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注