需求:系统需要拉取钉钉中的会议列表,钉钉中我看叫日程
尝试解决:我看了日程文档https://open.dingtalk.com/document/personalapp/query-an-event-list-1
疑问:发现其中calendarId,userId,acs-dingtalk-access-token是必填的,我是第三方的系统我怎么拿到这些ID呢
如果有对接过的巨佬能给个demo更好拉,谢谢各位
需求:系统需要拉取钉钉中的会议列表,钉钉中我看叫日程
尝试解决:我看了日程文档https://open.dingtalk.com/document/personalapp/query-an-event-list-1
疑问:发现其中calendarId,userId,acs-dingtalk-access-token是必填的,我是第三方的系统我怎么拿到这些ID呢
如果有对接过的巨佬能给个demo更好拉,谢谢各位
/v1.0/calendar/primary
接口获取主日历ID请求示例:
GET https://api.dingtalk.com/v1.0/calendar/primary
Headers:
x-acs-dingtalk-access-token: {access_token}
通过OAuth2.0授权流程获取:
前端跳转地址:
https://login.dingtalk.com/oauth2/auth?response_type=code&client_id={APP_KEY}&redirect_uri={REDIRECT_URI}
使用AppKey和AppSecret换取:
# Python示例
import requests
def get_access_token():
url = "https://api.dingtalk.com/v1.0/oauth2/accessToken"
data = {
"appKey": "your_app_key",
"appSecret": "your_app_secret"
}
response = requests.post(url, json=data)
return response.json()['accessToken']
def get_schedule_list():
# 1.获取access_token
token = get_access_token()
# 2.获取主日历ID
calendar_url = "https://api.dingtalk.com/v1.0/calendar/primary"
calendar_res = requests.get(
calendar_url,
headers={"x-acs-dingtalk-access-token": token}
)
calendar_id = calendar_res.json()['id']
# 3.查询日程列表
schedule_url = f"https://api.dingtalk.com/v1.0/calendar/users/{userId}/calendars/{calendar_id}/events"
params = {
"timeMin": "2023-01-01T00:00:00Z",
"timeMax": "2023-12-31T23:59:59Z"
}
schedule_res = requests.get(
schedule_url,
headers={"x-acs-dingtalk-access-token": token},
params=params
)
return schedule_res.json()
应用需要申请以下权限:
授权流程需要:
接口频率限制:
建议先完成「开发者身份认证」和「应用创建」,可在钉钉开放平台控制台完成这些前置操作。
10 回答10.3k 阅读
15 回答7.8k 阅读
3 回答11.3k 阅读✓ 已解决
2 回答11.3k 阅读✓ 已解决
5 回答4.2k 阅读✓ 已解决
2 回答11.1k 阅读✓ 已解决
2 回答8k 阅读✓ 已解决
1、新建一个应用,获取APP_KEY,APP_SECRET

2、获取token
2、果你的应用需要用户在钉钉客户端内登录,可以通过 免登授权码 获取用户的 userid,如果你知道用户的手机号,可以通过手机号获取 userid
手机号获取
3、获取日程