飞书创建日程会议

前言

临时将会议室抢占10分钟,抢占后,对应的飞书会议状态会显示已被占用,官方暂未给出创建会议的接口,目前的解决方案是,先创建日历,拿到日历id,通过日历id创建日程,通过日历id和日程id添加与会人员,并且挂住会议室room_id到resource,这样就把对应的会议室占住了

<1>创建日历

    /**
     * 创建日历
     */
    public static void newCalendar() {
        CalendarService calendarService = new CalendarService(Configs.getConfig());
        Calendar calendar = new Calendar();
        calendar.setSummary("take up take up take up");
        calendar.setDescription("抢占会议室日历");
        calendar.setPermissions("public");
        Response<CalendarCreateResult> response = null;
        try {
             response = calendarService.getCalendars().create(calendar).execute();
        } catch (Exception e) {
            e.printStackTrace();
        }
        System.out.println(response.getRequestID());
        System.out.println(response.getHTTPStatusCode());
        System.out.println("=================响应结果=================");
        System.out.println(Jsons.DEFAULT_GSON.toJson(response));

    }

响应结果:

    {
        "code":0,
        "msg":"success",
        "data":{
            "calendar":{
                "calendar_id":"feishu.cn_xxxxxxxxxxxxxxxa@group.calendar.feishu.cn",
                "summary":"take up take up take up",
                "description":"抢占会议室日历",
                "permissions":"public",
                "color":-46464,
                "type":"shared",
                "summary_alias":"",
                "role":"owner"
            }
        }
    }

<2>创建日程

    /**
     * 创建日程
     */
    public static void newCalendarEvent(String calendar_id) {

        CalendarService calendarService = new CalendarService(Configs.getConfig());
        CalendarEvent calendarEvent = new CalendarEvent();
        calendarEvent.setSummary("event event event");
        calendarEvent.setDescription("抢占会议室日程");

        TimeInfo startTime = new TimeInfo();
        TimeInfo endTime = new TimeInfo();
        
        startTime.setTimestamp("1625481900");
        startTime.setTimezone("Asia/Shanghai");

        endTime.setTimestamp("1625485500");
        endTime.setTimezone("Asia/Shanghai");


        calendarEvent.setStartTime(startTime);
        calendarEvent.setEndTime(endTime);

        Response<CalendarEventCreateResult> response = null;
        try {
            response = calendarService.getCalendarEvents().create(calendarEvent).setCalendarId(calendar_id).execute();
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println(response.getRequestID());
        System.out.println(response.getHTTPStatusCode());
        System.out.println("=================响应结果=================");
        System.out.println(Jsons.DEFAULT_GSON.toJson(response));
    }

响应结果:

    {
        "code":0,
        "msg":"success",
        "data":{
            "event":{
                "event_id":"xxxxxxxxxx-xxxxxxxxx-xxxxxx-xxxxxx-xxxxxx_0",
                "summary":"event event event",
                "description":"抢占会议室日程",
                "start_time":{
                    "timestamp":"1625481900",
                    "timezone":"Asia/Shanghai"
                },
                "end_time":{
                    "timestamp":"1625485500",
                    "timezone":"Asia/Shanghai"
                },
                "visibility":"",
                "attendee_ability":"none",
                "free_busy_status":"busy",
                "color":-1,
                "recurrence":"",
                "status":"confirmed",
                "is_exception":false
            }
        }
    }

<3>添加日程参与人

    /**
     * 占住会议室
     */
    public static void newMeet(String calendar_id,String event_id) {
        CalendarService calendarService = new CalendarService(Configs.getConfig());

        CalendarEventAttendeeCreateReqBody calendarEventAttendeeCreateReqBody = new CalendarEventAttendeeCreateReqBody();

        CalendarEventAttendee calendarEventAttendee = new CalendarEventAttendee();
        calendarEventAttendee.setType("resource");
        calendarEventAttendee.setIsOptional(true);
        calendarEventAttendee.setUserId("ou_xxxxxxxxxxxxxxxxxxxxxxx");
        calendarEventAttendee.setRoomId("omm_xxxxxxxxxxxxxxxxxxxxxxx");

        CalendarEventAttendee[] calendarEventAttendees = new CalendarEventAttendee[1];
        calendarEventAttendees[0] = calendarEventAttendee;

        calendarEventAttendeeCreateReqBody.setAttendees(calendarEventAttendees);
        calendarEventAttendeeCreateReqBody.setNeedNotification(true);


        Response<CalendarEventAttendeeCreateResult> response = null;
        try {
            response = calendarService.getCalendarEventAttendees().create(calendarEventAttendeeCreateReqBody).setCalendarId(calendar_id).setEventId(event_id).setUserIdType("open_id").execute();
        } catch (Exception e) {
            e.printStackTrace();
        }

        System.out.println(response.getRequestID());
        System.out.println(response.getHTTPStatusCode());
        System.out.println("=================响应结果=================");
        System.out.println(Jsons.DEFAULT_GSON.toJson(response));
    }

响应结果:

    {
        "code":0,
        "msg":"success",
        "data":{
            "attendees":[
                {
                    "type":"resource",
                    "attendee_id":"resource_xxxxxxxxxxxxxxxxx",
                    "rsvp_status":"needs_action",
                    "is_organizer":false,
                    "display_name":"煮酒-会议室",
                    "room_id":"omm_xxxxxxxxxxxxxxxxxxxxxxxx"
                }
            ]
        }
    }

占住会议室后,可以在日历里面看见被占住了
在这里插入图片描述

总结

1、占住会议室操作比较复杂
2、占住后的信息什么都没看见,不知道是不是我参数设置有问题
3、没有创建会议室绑定日程的接口

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值