一、自定义工作台创建
①打开钉钉开放平台管理后台选择创建自定义工作台
②拖拽资讯卡片组件设置为自定义接口获取数据
二、根据第三方接口格式在阿里云FC进行接口处理(当前以宜搭接口为实例)
①在阿里云搜索函数FC
②创建服务
③在创建的服务内新建一个函数进行接口及返回数据根据官方给出的组件格式进行处理
备注:官方组件格式文档
④在函数中进行服务端代码的书写
原码示例:
var getRawBody = require('raw-body');
const Url = require('url');
const API_SERVER = 'https://api.dingtalk.com';
const API_VERSION = 'v1.0';
const systemToken = '****'; //应用秘钥
const userId = 'yida_pub_account'; //以宜搭平台的身份访问接口
exports.handler = (req, resp, context) => {
resp.setHeader('Content-type', 'application/json');
getRawBody(req, function (err, body) {
let pageSize = req.queries.pageSize ? req.queries.pageSize : 10;
let currentPage = req.queries.currentPage ? req.queries.currentPage : 1;
post(
`${API_SERVER}/${API_VERSION}/yida/forms/instances/search`,
{
appType: "APP_MY2A4043WXMQTLDSYIE1",
formUuid: "FORM-NC966W81D6O5K3D6B5ETO50TIROL2QGEMQ1BLH3",
searchFieldJson: "",
systemToken: systemToken,
userId: userId,
currentPage: currentPage,
pageSize: pageSize
},
function (data) {
data = JSON.parse(data).data[0].formData.textField_lb6a38uy;
//将searchFormDatas接口的返回值直接塞到response中。
var respBody = new Buffer.from(data);
resp.setStatusCode(200);
resp.send(respBody);
},
req.queries.accessToken
);
});
}
function post(url, data, fn, accessToken) {
data = data || {};
let parse_u = Url.parse(url, true);
let isHttp = parse_u.protocol == 'http:';
let options;
options = {
host: parse_u.hostname,
port: parse_u.port || (isHttp ? 80 : 443),
path: parse_u.path,
method: 'POST',
json: true,
headers: {
'Content-Type': 'application/json',
'x-acs-dingtalk-access-token': "d082ee492579311e98c73ab0aa7b8267"//accessToken
},
};
let req = require(isHttp ? 'http' : 'https').request(options, function (res) {
let _data = '';
res.on('data', function (chunk) {
_data += chunk;
});
res.on('end', function () {
fn != undefined && fn(_data);
});
});
var a=JSON.stringify(data);
req.write(a);
req.end();
}
⑤代码写完后进行部署测试
三、在钉钉开放平台创建数据源
①新建数据源
②将处理好的接口内容参数填入新建的数据源
③配置完成对数据源进行测试
④在自定义工作台内选择配置好的数据源