找回密码
 立即注册

QQ登录

只需一步,快速开始

benny111

金牌服务用户

72

主题

167

帖子

651

积分

金牌服务用户

积分
651
benny111
金牌服务用户   /  发表于:2024-9-28 23:55  /   查看:627  /  回复:9
1金币
场景:活字发起钉钉日历,论坛涉及这个的都是很久以前的钉钉文档来写的,过期了,是按钉钉接口文档里的【历史文档】里写的工程,所以不要发我论坛里的文章了,最新钉钉接口文档:这是最新的钉钉接口文档
文档里的请求是什么东西呀,其中的{userId},{calendarId}是啥呀,我怎么写呀(关于怎么连钉钉与获取TOKEN不用说我都是正确的)

POST /v1.0/calendar/users/{userId}/calendars/{calendarId}/events HTTP/1.1
Host:api.dingtalk.com



附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

问题跟进: 大佬,这边测试了下,发现问题原因如下: 如果全天:只需要写start和end中的Date参数 举例: Date:2024-09-30 isAllDay:true 如果非全天,详细到时间段:start和end中的Date参数为空,需要写date Time参数和timeZone时区参数: 举例: datetime:2024-09-30T16:00:00+08:00 timeZone:Asia/Shanghai isAllDay:false 这样就可以创建全天和时间段范围的日程了

9 个回复

倒序浏览
最佳答案
最佳答案
Levi.Zhang
超级版主   /  发表于:2024-9-28 23:55:49
来自 10#
本帖最后由 Levi.Zhang 于 2024-9-30 14:46 编辑

问题跟进:
大佬,这边测试了下,发现问题原因如下:
如果全天:只需要写start和end中的Date参数
举例:
Date:2024-09-30
isAllDay:true


如果非全天,详细到时间段:start和end中的Date参数为空,需要写date Time参数和timeZone时区参数:
举例:
datetime:2024-09-30T16:00:00+08:00
timeZone:Asia/Shanghai
isAllDay:false

这样就可以创建全天和时间段范围的日程了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-9-29 09:41:41
2#
本帖最后由 Levi.Zhang 于 2024-9-29 09:58 编辑

大佬,
1.关于userId:是日程组织者的unionld。
官方给出的解释:
企业内部应用,调用[查询用户详情](https://open.dingtalk.com/document/orgapp/query-user-details)接囗获取unionid参数值。
第三方企业应用调用[查询用户详情(https://open.dingtalk.com/document/isvapp/query-user-details)接囗获取unionid参数值。
第三方个人应用调用[获取用户通讯录个人信息](https://open.dingtalk.com/docume ... ve-user-information)接囗获取unionld参数值。

举例:HTTP请求:POST https://oapi.dingtalk.com/topapi/v2/user/get?access_token=ACCESS_TOKEN
请求正文:
  1. {
  2.         "language":"zh_CN",
  3.         "userid":"zhangsan"
  4. }
复制代码
language:是通讯录语言,默认为:zh_CN:中文
userid:用户的userId


然后在
result返回结果信息中拿到unionid的值:unionid":"z21HjQliSzpw0YWxxxxx",

2.calendarId是日程所属的日历ID,统一为**primary**,表示用户的主日历。


回复 使用道具 举报
benny111
金牌服务用户   /  发表于:2024-9-29 16:02:24
3#
Levi.Zhang 发表于 2024-9-29 09:41
大佬,
1.关于userId:是日程组织者的unionld。
官方给出的解释:

还是地址错了,帮我看看拼接有问题吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-9-29 17:56:43
4#
大佬,这边刚测试了下,您试试把请求链接后面的 HTTP/1.1 删除:


这边也测试了下,请求头的话需要x-acs-dingtalk-access-token的值:

再检查一下请求体body里的参数是否都设置无误:




附上了创建日程Demo,大佬可以参考一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
benny111
金牌服务用户   /  发表于:2024-9-29 18:51:21
5#
本帖最后由 benny111 于 2024-9-30 00:14 编辑
Levi.Zhang 发表于 2024-9-29 17:56
大佬,这边刚测试了下,您试试把请求链接后面的 HTTP/1.1 删除:

现在没有报错了,为什么钉钉里日历里没有呢,另外接口文档应该是这个,文档

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-9-30 09:16:53
6#
大佬,这边调查一下
回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-9-30 10:20:29
7#
大佬,这边刚也测试了下,发现日程确实添加不上去,可能是start和end时间这块出了问题,但是测试多次都还是无法创建,也怀疑可能是钉钉那边接口出了问题,
我们获取到的返回信息为:
  1.     "events": [],
  2.     "requestId": "95659292-9577-72A5-AB5E-B051465C584E",
  3.     "syncToken": "Ogp0BpjlXSYiE"
复制代码

官方给的返回示例中的部分信息是:
  1. {
  2.   "id" : "iiiP35sJadba8aBSgjrwPRKgiEiF",
  3.   "summary" : "some event",
  4.   "description" : "something about this event",
  5.   "start" : {
  6.     "date" : "2020-01-01",
  7.     "dateTime" : "2020-01-01T10:15:30+08:00",
  8.     "timeZone" : "Asia/Shanghai"
  9.   },
  10.   "end" : {
  11.     "date" : "2020-01-01",
  12.     "dateTime" : "2020-01-01T10:15:30+08:00",
  13.     "timeZone" : "Asia/Shanghai"
  14.   },
复制代码

信息不一致,而且他们的接口示例中也存在时间问题:



我这边提交了钉钉的问题工单,向钉钉反馈了这个问题;大佬也可以联系下钉钉那边客服,详细咨询下接口调用方式和报错问题;

这边有结果了第一时间跟您联系~~~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
吴小胖讲师达人认证 悬赏达人认证 活字格认证
金牌服务用户   /  发表于:2024-9-30 11:12:14
8#
大佬,我这边按照官方现在的文档做出来都是正常的~


您可以先在使用在线工具测试一下,https://open-dev.dingtalk.com/apiExplorer#/?devType=org&api=calendar_1.0%23CreateEvent这里测试好,然后把值复制到活字格里~

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

评分

参与人数 1金币 +5 收起 理由
Levi.Zhang + 5 很给力!

查看全部评分

回复 使用道具 举报
Levi.Zhang
超级版主   /  发表于:2024-9-30 11:29:04
9#
吴小胖 发表于 2024-9-30 11:12
大佬,我这边按照官方现在的文档做出来都是正常的~

大佬,这边也测试了下,创建全天的是可以的呢~
但是创建详细时间就不太行,大佬可以分享下Demo吗?这边学习一下

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部