钉钉自定义工作台如何利用资讯组件获取外部数据

一、自定义工作台创建

①打开钉钉开放平台管理后台选择创建自定义工作台

②拖拽资讯卡片组件设置为自定义接口获取数据

二、根据第三方接口格式在阿里云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();
}

⑤代码写完后进行部署测试

三、在钉钉开放平台创建数据源

①新建数据源

②将处理好的接口内容参数填入新建的数据源

③配置完成对数据源进行测试

④在自定义工作台内选择配置好的数据源

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值