在钉钉中stream模式发送卡片的java代码示例?
请参考以下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对象以更新或回应卡片状态。此回答整理来自钉群“钉钉开发者社区(互助群)”。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。