完整文档+代码案例:钉钉机器人申请流程以及使用

1.复制链接在浏览器打开并扫码或使用账户密码登录
https://open-dev.dingtalk.com/fe/app#/corp/robot
完整文档+代码案例:钉钉机器人申请流程以及使用_第1张图片
2.登录成功后按照下方图2步骤先点击【应用开发】选择【企业内部开发】-【机器人】
完整文档+代码案例:钉钉机器人申请流程以及使用_第2张图片

3.点击【创建应用】-【继续使用旧版本】
完整文档+代码案例:钉钉机器人申请流程以及使用_第3张图片
4.填写”应用名称=运维平台机器人”,”应用描述=钉钉机器人消息通知”好相应数据后点击【确定创建】按钮,创建好后可以看到我们刚新增的机器人
完整文档+代码案例:钉钉机器人申请流程以及使用_第4张图片
完整文档+代码案例:钉钉机器人申请流程以及使用_第5张图片
5.在机器人应用信息页,如图复制应用凭证的AppKey和AppSecret(后面直接粘贴到代码即可)
完整文档+代码案例:钉钉机器人申请流程以及使用_第6张图片

6.在应用详情页点击【开发管理】的【修改】,添加服务器出口IP(输入调用钉钉服务端API时使用的IP即企业服务器的公网IP,多个IP请以英文逗号","隔开),添加后直接点击保存
完整文档+代码案例:钉钉机器人申请流程以及使用_第7张图片
7.点击【权限管理】,在搜索框输入“根据手机号姓名获取成员信息的接口访问权限”后勾选数据并点击【权限申请】按钮,申请成功后”全部状态”会改为”已开通”,如图8,同样输入“企业内机器人发送消息权限”并勾选【权限申请】按钮,如”全部状态”为”已开通”说明已经申请到了该权限
完整文档+代码案例:钉钉机器人申请流程以及使用_第8张图片
完整文档+代码案例:钉钉机器人申请流程以及使用_第9张图片
8.点击【部署与发布】-【版本管理与发布】页,点击【上线】按钮
完整文档+代码案例:钉钉机器人申请流程以及使用_第10张图片
9.把第五步获取到的密钥信息直接粘贴到代码

@Test
    public void test00001() throws Exception{
        //1.获取token开始---------------------------------------------------
        String TOKEN = null;
        String appkey = "填写appkey";
        String appsecret = "填写appsecret";
        //获取企业内部应用的access_token,具体Api介绍:https://open.dingtalk.com/document/orgapp/obtain-orgapp-token
        String url = "https://oapi.dingtalk.com/gettoken";
        DingTalkClient client1 = new DefaultDingTalkClient(url);
        OapiGettokenRequest req1 = new OapiGettokenRequest();
        req1.setAppkey(appkey);
        req1.setAppsecret(appsecret);
        req1.setHttpMethod("GET");
        OapiGettokenResponse rsp1 = client1.execute(req1);
        Map map = JSON.parseObject(rsp1.getBody(), Map.class);
        boolean flag = map.get("errcode").toString().equals("0");
        if (flag){
            TOKEN = map.get("access_token").toString();
        }else {
            throw new RuntimeException(map.get("errmsg").toString());
        }
        //获取token结束------------------------------------------------------
        
        //2.根据手机号码获取钉钉用户信息userid开始------------------------------------
        String userId = null;
        String getbymobile = "https://oapi.dingtalk.com/topapi/v2/user/getbymobile";
        DingTalkClient client2 = new DefaultDingTalkClient(getbymobile);
        OapiV2UserGetbymobileRequest req2 = new OapiV2UserGetbymobileRequest();
        req2.setMobile("填写你在钉钉的手机号");
        OapiV2UserGetbymobileResponse rsp2 = client2.execute(req2, TOKEN);
        Map<String, Object> object = JSON.parseObject(rsp2.getBody(), Map.class);
        boolean flag2 = object.get("errcode").toString().equals("0");
        if (flag2) {
            JSONObject jsonObject = (JSONObject) object.get("result");
            Iterator<Map.Entry<String, Object>> iterator = jsonObject.entrySet().iterator();
            userId = iterator.next().getValue().toString();
        } else {
            throw new RuntimeException(object.get("errmsg").toString());
        }
        //根据手机号码获取钉钉用户信息userid结束------------------------------------
        
        //3.根据钉钉的userId发送钉钉机器人消息开始------------------------------
        com.aliyun.dingtalkrobot_1_0.Client client3 = createClient();
        BatchSendOTOHeaders batchSendOTOHeaders = new BatchSendOTOHeaders();
        batchSendOTOHeaders.xAcsDingtalkAccessToken = TOKEN;
        BatchSendOTORequest batchSendOTORequest = new BatchSendOTORequest()
                .setRobotCode(appkey)
                .setUserIds(java.util.Arrays.asList(userId))
                .setMsgKey("sampleText")
                .setMsgParam("{\"content\":\""+"你想发送的钉钉机器人消息"+"\"}");
        try {
            client3.batchSendOTOWithOptions(batchSendOTORequest, batchSendOTOHeaders, new RuntimeOptions());
        } catch (TeaException err) {
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
                System.out.println("钉钉机器人短信发送失败:"+JSON.toJSONString(err));
            }
        } catch (Exception _err) {
            TeaException err = new TeaException(_err.getMessage(), _err);
            if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
                // err 中含有 code 和 message 属性,可帮助开发定位问题
                System.out.println("钉钉机器人短信发送失败:"+JSON.toJSONString(_err));
            }
        }
    }

10.发送结果截图
完整文档+代码案例:钉钉机器人申请流程以及使用_第11张图片

你可能感兴趣的:(机器人,钉钉,人工智能)