我成功地intergarted谷歌日历API。我可以做CRUD。但现在由于一些要求,我想发送一些独特的ID到每个事件,而创建从Android应用程序。为此,我找到了一个方法,叫做 .set()
这是一个键值对。
Event event = new Event()
.set("appointment_id", 55475)
.setSummary(summary)
.setLocation(location)
.setDescription(des);
但在获取时,我得到了所有数据,但除了 event.get("appointment_id")
为什么,连它也设置了。[如果我在执行插入之前,在这里做这样的工作, evetn.get("appointment_id")
我得到的值,因为这是本地的,我哽咽] 。
我也是通过调试检查的。见下文。
但是,当我从谷歌日历中获取所有事件时,我没有得到。
List<Event> items = events.getItems();
你使用的是 set
方法,但这只是覆盖了 com.google.api.client.json.GenericJson
类,我相信这只会将这个键值添加到最终的JSON中,而API将忽略它(因为它不是一个预期的字段)。
真诚的说,我不知道创建一个自定义的id有什么意义,因为日历中已经直接集成了一个。
如果你看一下 insert
方法,你可以看到有一个叫做 id
:
事件的不透明标识符。当创建新的单个或重复发生的事件时,您可以指定其ID。所提供的ID必须遵循这些规则。
ID中允许的字符是base32hex编码中使用的字符,即小写字母a-v和数字0-9,见RFC2938的3.1.2节。
ID的长度必须在5到1024个字符之间。
身份证必须是每个日历上唯一的
也在同样的字段描述中。
如果你没有指定一个ID,它将由服务器自动生成。
我的观点是,如果你需要为日历中的事件提供唯一的ID,有一个内置的方法可以为你创建它们。即使你需要提供你自己的ID,你也可以这样做,告知这个领域。
让我向你推荐官方指南 事件创建 其中有一个更详细的视图,你可以采取创建一个事件的选项。
也可以查看文档中的 setId
因为这是你应该使用的方法,而不是使用 set
.
例如:
Event event = new Event()
.setId("55475") // This has to be type String
.setSummary(summary)
.setLocation(location)
.setDescription(des);