开发者社区> 问答> 正文

在钉钉中stream模式发送卡片的java代码示例?

在钉钉中stream模式发送卡片的java代码示例?

展开
收起
花开富贵111 2024-08-13 17:56:01 46 0
1 条回答
写回答
取消 提交回答
  • 请参考以下Java代码示例,演示了在Stream模式下处理卡片回调请求的实现:

    import com.dingtalk.open.app.api.OpenDingTalkStreamClientBuilder;
    import com.dingtalk.open.app.api.callback.OpenDingTalkCallbackListener;
    import com.dingtalk.open.app.api.security.AuthClientCredential;
    
    /**
     * 长连接holder, 维护和钉钉开放平台外联网关的Stream长连接
     * @author dingtalk
     */
    public class PersistenceConnectionHolder {
    
        private static OpenDingTalkCallbackListener<CardCallbackRequest, CardCallbackResponse> yourListener= new OpenDingTalkCallbackListener<CardCallbackRequest, CardCallbackResponse>(){
    
        @Override
        public CardCallbackResponse execute(CardCallbackRequest request) {
            log.info("receive call back request, {}", request);
    
            //your code is here
    
            //开发者根据自身业务需求,变更卡片内容,返回response
            CardCallbackResponse response = new CardCallbackResponse();
            return response;
        }
    };
    
    // 其他代码逻辑,如长连接建立、维护等...
    
    /**
     * 卡片回调请求
     */
    public static class CardCallbackRequest{
        private String type;
        private String outTrackId;
        private String content;
        private String corpId;
        private String userId;
        public static class ActionCallbackContent {
            private PrivateCardActionData cardPrivateData;
            public static class PrivateCardActionData {
                private List<String> actionIds;
                private Map<String, Object> params;
            }
        }
    }
    
    /**
     * 卡片回调响应
     */
    public static class CardCallbackResponse {
        private CardDataDTO cardData;
        private CardDataDTO privateCardData;
        public static class CardDataDTO{
            private Map<String, String> cardParamMap;
        }
    }
    

    }
    此代码段展示了如何定义一个监听器OpenDingTalkCallbackListener来处理卡片的事件回调请求。当用户与卡片交互(例如点击按钮)时,钉钉服务器会通过Stream长连接向你的服务推送一个CardCallbackRequest对象。你需要在execute方法中实现具体的业务逻辑处理,并最终返回一个CardCallbackResponse对象以更新或回应卡片状态。此回答整理来自钉群“钉钉开发者社区(互助群)”。

    2024-08-13 21:04:45
    赞同 展开评论 打赏
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
钉钉小程序——为工作方式插上翅膀 立即下载
钉钉客户端自动化的应用 立即下载
使命必达 —— 钉钉企业级 消息服务的机遇与挑战 立即下载