Google calendar api 对于少数事件,获取google日历事件id的大小超过200个字符。我需要它<;200字符?

Google calendar api 对于少数事件,获取google日历事件id的大小超过200个字符。我需要它<;200字符?,google-calendar-api,Google Calendar Api,我已经为我的帐户设置了日历事件,其中包含每个事件的唯一ID。对于少数事件,id太大,我的应用程序需要大小小于200个字符的id。但我不确定为什么在少数事件中ID太大?不知道如何在不破坏唯一性的情况下使其变小?您可以使用UUID,这是一个128位几乎是随机数(我说几乎是因为实际上重复它的可能性,它接近于零)。基本上,所有编程语言都有生成UUID的库,结果如下: 9d853330-21e1-415d-9237-9b80efb3b584 然后,您需要使用数组方法.split()或其等效方法,具体取决于

我已经为我的帐户设置了日历事件,其中包含每个事件的唯一ID。对于少数事件,id太大,我的应用程序需要大小小于200个字符的id。但我不确定为什么在少数事件中ID太大?不知道如何在不破坏唯一性的情况下使其变小?

您可以使用UUID,这是一个128位几乎是随机数(我说几乎是因为实际上重复它的可能性,它接近于零)。基本上,所有编程语言都有生成UUID的库,结果如下:

9d853330-21e1-415d-9237-9b80efb3b584

然后,您需要使用数组方法
.split()
或其等效方法,具体取决于您使用的语言,以获得如下数组:

['9d853330', '21e1',  '415d', '9237', '9b80efb3b584']
使用该数组,您可以在不使用“-”的情况下形成一个新字符串,因为它不允许作为事件的有效id,例如:

事件的不透明标识符。创建新的单张或定期 事件,您可以指定它们的ID。提供的ID必须符合以下要求 规则:ID中允许的字符是base32hex中使用的字符 编码,即小写字母a-v和数字0-9,见第3.1.2节 在RFC2938中,ID的长度必须介于5到1024个字符之间 由于全球分布,每个日历的ID必须是唯一的 就系统的性质而言,我们不能保证ID冲突会被消除 在事件创建时检测到。为了将碰撞风险降至最低,我们 建议使用已建立的UUID算法,如中所述 RFC4122。如果未指定ID,则会自动删除该ID 由服务器生成。请注意,icalUID和id不是 相同,并且在创建事件时只应提供其中一个 时间它们语义上的一个区别是,在重复发生的事件中, 一个事件的所有事件都具有不同的ID,但它们都共享 同样的icalUIDs

指定生成id的示例请求正文如下所示:

{
“结束”:{
“日期时间”:“2019-12-20T17:00:00-07:00”,
“时区”:“美国/洛杉矶”
},
“开始”:{
“时区”:“美国/洛杉矶”,
“日期时间”:“2019-12-19T09:00:00-07:00”
},
“id”:“9d85333021e1415d92379b80efb3b584”,
“摘要”:“Id测试”
}

我还可以看到一件事,我们可以为字符串生成md5hex,然后将其用作事件ID。但我仍然有疑问,为什么事件的id在某些情况下是一个很长的字符串值,而在其他情况下是短字符串,如上面的示例所示?由于RFC2938编码算法的性质,单词的长度可能会有所不同。编程语言UUID库在使用时为您提供了固定的字长,这将解决少于200个字符的要求