API开放平台场景示例:获取日历、查询视图并获取日程

时间:2025-09-09 16:22:43 作者:阿里邮箱服务中心-郑老师

调用“获取日历文件夹列表”接口,从返回值中获取日历id,传入“查询日历视图”接口,设定起止日期,获取事件id,传入“日程获取”接口,获取到最后的日程详情。

相关接口

获取日历文件夹列表

查询日历视图

日程获取

基本流程

image

Python代码示例

API开放平台代码示例:获取访问凭证

重要

风险提示:下述代码在Python 3.11.9进行的测试,用于生产环境之前请务必先做好测试。

 

# -*- coding: utf-8 -*-import requests# 导入获取访问令牌的函数,路径根据实际情况进行修改,或直接给access_token赋值用于测试from api_demo.get_access_token import access_tokendef get_calendar_folders(v_name):    """
    获取日历文件夹列表
    https://mailhelp.aliyun.com/openapi/index.html#/operations/alimailpb_alimail_mailagent_open_CalendarService_ListCalendars

    """

    url = f"https://alimail-cn.aliyuncs.com/v2/users/{v_name}/calendars"

    querystring = {}

    headers = {'Content-Type': 'application/json', 'Authorization': 'bearer ' + access_token}

    response = requests.request("GET", url, headers=headers)    print('##########################################################################')    print('请求参数:', querystring)    print('返回参数:', response.status_code, response.text)    print('##########################################################################')    return response.json()["calendars"]def get_calendar_view(v_name, v_calendar_id, querystring):    """
    查询日历视图
    https://mailhelp.aliyun.com/openapi/index.html#/operations/alimailpb_alimail_mailagent_open_EventService_EventView

    """

    url = f"https://alimail-cn.aliyuncs.com/v2/users/{v_name}/calendars/{v_calendar_id}/eventsview"

    headers = {'Content-Type': 'application/json', 'Authorization': 'bearer ' + access_token}

    response = requests.request("GET", url, headers=headers, params=querystring)    print('##########################################################################')    print('请求参数:', querystring)    print('返回参数:', response.status_code, response.text)    print('##########################################################################')    return response.json()["events"]def get_calendar_detail(v_name, v_calendar_id, v_event_id):    """
    日程获取
    https://mailhelp.aliyun.com/openapi/index.html#/operations/alimailpb_alimail_mailagent_open_EventService_GetEvent

    """

    url = f"https://alimail-cn.aliyuncs.com/v2/users/{v_name}/calendars/{v_calendar_id}/events/{v_event_id}"

    querystring = {}

    headers = {'Content-Type': 'application/json', 'Authorization': 'bearer ' + access_token}

    response = requests.request("GET", url, headers=headers)    print('##########################################################################')    print('请求参数:', querystring)    print('返回参数:', response.status_code, response.text)    print('##########################################################################')# 获取日历列表email_account = 'test@example.com'list_calendars = get_calendar_folders(email_account)print(list_calendars)for calendar in list_calendars:    # 获取日历ID和名称
    print(calendar["id"], calendar["name"])print('获取日历ID完成')# 根据需要选择日历calendar_id = list_calendars[0]["id"]  # 按需修改time_range = {"startTime": "2024-08-01T14:15:22Z", "endTime": "2024-12-31T14:15:22Z"}
list_events = get_calendar_view(email_account, calendar_id, time_range)print(list_events)if len(list_events) > 0:    for events in list_events:        # 获取event_id,subject等
        print(events["id"], events["subject"])    print('查询日历视图event_id完成')    # 获取日程详情
    event_id = list_events[0]["id"]  # 按需修改
    get_calendar_detail(email_account, calendar_id, event_id)    print('获取日程详情完成')else:    print('未查询到数据,请检查时间范围等参数。')


运行结果

image

image


TAG标签:
x