✨Feat: 实现事件订阅
This commit is contained in:
@@ -4,9 +4,12 @@ import cn.hezhaohui.lark.util.LarkUtil;
|
|||||||
import org.springframework.boot.SpringApplication;
|
import org.springframework.boot.SpringApplication;
|
||||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||||
|
|
||||||
|
import static cn.hezhaohui.lark.handler.EventListener.larkClientStart;
|
||||||
|
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
public class Application {
|
public class Application {
|
||||||
public static void main(String[] args) throws Exception {
|
public static void main(String[] args) throws Exception {
|
||||||
SpringApplication.run(Application.class, args);
|
SpringApplication.run(Application.class, args);
|
||||||
|
larkClientStart();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,38 @@
|
|||||||
|
package cn.hezhaohui.lark.handler;
|
||||||
|
|
||||||
|
import cn.hezhaohui.lark.constant.AppConstant;
|
||||||
|
import com.lark.oapi.core.request.EventReq;
|
||||||
|
import com.lark.oapi.core.utils.Jsons;
|
||||||
|
import com.lark.oapi.event.CustomEventHandler;
|
||||||
|
import com.lark.oapi.event.EventDispatcher;
|
||||||
|
import com.lark.oapi.service.im.ImService;
|
||||||
|
import com.lark.oapi.service.im.v1.model.P2MessageReceiveV1;
|
||||||
|
import com.lark.oapi.ws.Client;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
|
||||||
|
public class EventListener {
|
||||||
|
|
||||||
|
// onP2MessageReceiveV1 为接收消息 v2.0;onCustomizedEvent 内的 message 为接收消息 v1.0。
|
||||||
|
private static final EventDispatcher EVENT_HANDLER = EventDispatcher.newBuilder("", "")
|
||||||
|
.onP2MessageReceiveV1(new ImService.P2MessageReceiveV1Handler() {
|
||||||
|
@Override
|
||||||
|
public void handle(P2MessageReceiveV1 event) throws Exception {
|
||||||
|
System.out.printf("[ onP2MessageReceiveV1 access ], data: %s\n", Jsons.DEFAULT.toJson(event.getEvent()));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.onCustomizedEvent("这里填入你要自定义订阅的 event 的 key,例如 out_approval", new CustomEventHandler() {
|
||||||
|
@Override
|
||||||
|
public void handle(EventReq event) throws Exception {
|
||||||
|
System.out.printf("[ onCustomizedEvent access ], type: message, data: %s\n", new String(event.getBody(), StandardCharsets.UTF_8));
|
||||||
|
}
|
||||||
|
})
|
||||||
|
.build();
|
||||||
|
|
||||||
|
public static void larkClientStart() {
|
||||||
|
Client cli = new Client.Builder(AppConstant.APP_ID, AppConstant.APP_SECRET)
|
||||||
|
.eventHandler(EVENT_HANDLER)
|
||||||
|
.build();
|
||||||
|
cli.start();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user