概要
2016年8月的更新(日语)追加了 “空间的主题内发表评论”,这次将为大家介绍使用了这个新功能的Tips。
追加的REST API的概要
新追加的REST API,可以在请求本体里指定空间ID和主题ID,然后在主题里发表评论。评论里可以提醒用户或者组织/group查看,并且还可以添付图像(使用文件密钥来指定)。
关于具体的指定参数,可以参照此篇文章。
这次情景的要点
感觉灵敏的人,可能一看这个功能名字就一下子明白了吧,现实情况是使用这个REST API只可以POST,不能GET。
因此,我们这次使用这个API实现的是单向操作的范例。具体为,点击应用里的按钮,统计应用里的数据,然后向主题里发表评论。百闻不如一见,下面就是完成的样子。
完成的样子
首先是应用。
点击列表页面的头部菜单空间里的 “将今天的结果发表到主题的评论里” 按钮…
(注:这个页面里的都是测试数据,并非实际的业务内容。)
之后,确认下主题这边的页面。
在最新发表的评论里,我们可以看到应用数据的统计结果。
事先准备
准备主题-应用间的整合,需要以下这些操作顺序。
在kintone 的首页,作成一个空间,记住空间的ID。
在空间里作成相关的主题,记住主题的ID。
在空间里作成应用。
在应用里添加记录。
关于空间ID和主题ID,我们可以用浏览器打开空间的主题,确认URL。比如以下的范例里,空间ID为4,主题ID为5。
关于应用这边的要做的事情,因为这次我们只是合计记录的条数,所以字段可以随意的设置。另外,在这次的Tips里,我们需要根据记录条数的创建时间,合计本日和本月的条数,所以请大家尽可能添加多条创建时间间隔2日以上的数据。
点击回复按钮后的确认页面,我们使用的是Cybozu CDN里的SweetAlert,所以在 “应用的设置” 页面里有必要添加CDN的URL。developer network的这篇文章,可以做成漂亮的确认页面,大家可以参考下。
范例程序和解说
范例程序(JavaScript)
注意事项
才望子不予以保证本范例程序的正常运行。
才望子不提供对程序范例的技术支持。
以下是范例程序的概要。
作成按钮
点击按钮时的处理在以下3-5的步骤里描述。
使用REST API获取本月作成的全部记录信息
使用JavaScript从上述记录里合计本日的作成部分,放到变量里。
将步骤3和步骤4的内容发表到主题的评论里
以下是全部的代码。
(function() { "use strict"; kintone.events.on('app.record.index.show', function(event) { if (document.getElementById('my_index_button') !== null) { return; } // 创建按钮 var myIndexButton = document.createElement('button'); myIndexButton.id = 'my_index_button'; myIndexButton.innerHTML = '将今天的结果发表到主题的评论里'; // 点击按钮时的处理 myIndexButton.onclick = function() { // 使用SweetAlert的确认页面 swal({ title: "发表评论后确认", text: "是否发表合计结果?", type: "warning", showCancelButton: true, confirmButtonColor: "#DD6B55", confirmButtonText: "OK", cancelButtonText: "取消", closeOnConfirm: false, closeOnCancel: false }, function(isConfirm) { if (isConfirm) { var d = new Date(); var month = d.getUTCMonth() + 1; var hour = d.getUTCHours() + 9; var min = d.getUTCMinutes(); // 获取本月作成的全部记录信息 var params = { 'app': 13565, "query": "创建时间 = THIS_MONTH()", // 指定本月 "fields": ["$id", "创建时间"], "totalCount": true // 本月件数合计 }; kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params, function(resp) { var monthCount = resp.totalCount; // 当日的件数合计 var today = new Date(); var todayUTC = today.getUTCDate(); var todayCount = 0; for (var i = 0; i < resp.records.length; i++) { if (new Date(resp.records[i]['创建时间'].value).getUTCDate() === todayUTC) { todayCount++; } } // 主题内发表评论 var body = { "space": 524, "thread": 1044, "comment": { "text": "报告当日 " + month + "月" + todayUTC + "日 " + hour + "时" + min + "分 的咨询业绩。\n当天新接待: " + todayCount + " 条\n本月的累积条数: " + monthCount + " 条。", "mentions": [ { "code": "客户本部_9tkO30", "type": "ORGANIZATION" } ] } }; kintone.api(kintone.api.url('/k/v1/space/thread/comment', true), 'POST', body, function(res) { swal("发表成功", "主题内发表评论成功", "success"); }, function(error) { }); }); }else { swal("取消成功", "已取消", "error"); } }); }; kintone.app.getHeaderMenuSpaceElement().appendChild(myIndexButton); }); })();
使用新API的地方
下面是,这次使用的新功能的部分代码。
// 主题内发表评论 var body = { "space": 524, "thread": 1044, "comment": { "text": "报告当日 " + month + "月" + todayUTC + "日 " + hour + "时" + min + "分 的咨询业绩。\n当天新接待: " + todayCount + " 条\n本月的累积条数: " + monthCount + " 条。", "mentions": [ { "code": "客户本部_9tkO30", "type": "ORGANIZATION" } ] } }; kintone.api(kintone.api.url('/k/v1/space/thread/comment', true), 'POST', body, function(res) { swal("发表成功", "主题内发表评论成功", "success"); }, function(error) { });
像上面这样指定空间ID和主题ID,然后POST。在指定谁看里,填入组织代码和类型。
其他的要点
关于可获取的记录数
// 获取本月作成的全部记录信息 var params = { 'app': 13565, "query": "创建时间 = THIS_MONTH() limit 500", // 指定本月 "fields": ["$id", "创建时间"], "totalCount": true // 本月件数合计 }; kintone.api(kintone.api.url('/k/v1/records', true), 'GET', params, function(resp) {
在REST API的 “query” 参数里,什么也不指定的情形,可获取的记录条数的上限是100条。可以扩大“limit” 选项的上限,最大为500。因此,当前的范例程序可以获取的最大上限数为500条。这里是关于这个API的文档说明。
totalCount的使用
REST API的请求参数 “totalCount” 置成 “True” 的时候,可以简单的合计记录条数。这里是关于这个API的文档说明。
今天作成件数的获取方法(例)
// 当日的件数合计 var today = new Date(); var todayUTC = today.getUTCDate(); var todayCount = 0; for (var i = 0; i < resp.records.length; i++) { if (new Date(resp.records[i]['创建时间'].value).getUTCDate() === todayUTC) { todayCount++; } }
使用totalCount可以合计本月的作成条数,这次还需要获取当日部分的合计,上面的代码是使用JavaScript的for循环来合计的代码详细。
使用的API
结尾
新添加的REST API的使用方法就为大家介绍完毕了。整合了应用和主题,kintone作为一种交流工具可使用的范围更大了吧!
该Tips在2016年8月版中进行过确认。