看板应用teambition和其他企业系统的整合

概要

 

看板应用 teambition
企业OA系统 kintone

我们希望能把自己企业OA系统(kintone)中的任务直接发布到外包企业的项目管理系统(teambition)上。

效果图

 

关键代码

        function genAppAccessToken(param) {
            const periodical = 3600;
            const iat = Math.floor(Date.now() / (1000 * periodical)) * periodical;
            const oHeader = {
                alg: 'HS256',
                typ: 'JWT'
            };
            const oPayload = {
                iat:iat,
                exp: iat + Math.floor(1.1 * periodical),
                _appId: param.appId,
            };
            return KJUR.jws.JWS.sign('HS256', oHeader, oPayload, { utf8: param.appSecret });
        }

        function createTask(param) {
            const data = {
                'operatorId': param.uid,
                'projectId': param.projectId,
                'templateId': param.templateId,
                'content': param.content,
                'priority': param.priority,
                'visible': param.visible            }
            const options = ['tasklistId', 'taskgroupId', 'executorId', 'statusId', 'startDate', 'dueDate', 'note', 'parentTaskId', 'participants', 'customfields'];
            for (let i = 0; i < options.length; i++) {
                param[options[i]] && (data[options[i]] = param[options[i]]);
            }
            return kintone.proxy('https://open.teambition.com/api/task/create', 'POST', {
                'Content-Type': 'application/json',
                'Authorization': 'Bearer ' + param.appAccessToken,
                'X-Tenant-Id': param.orgId,
                'X-Tenant-Type': 'organization'
            }, data);
        }

 

具体实现请参考:
通过kintone发布teambition任务

 

更多文章和演示:Kintone demo环境

posted @ 2020-08-14 10:42  cybozu开发者  阅读(330)  评论(0编辑  收藏  举报