【问题标题】:Flutter Google Calendar Api list EventsFlutter Google Calendar Api 列表事件
【发布时间】:2018-09-18 08:24:37
【问题描述】:

Flutter,谷歌日历 API v3 https://pub.dartlang.org/packages/googleapis

作品:

  Future<List<Event>> getEvents() =>
  calendarApi.events.list("primary",
  )
  .then((Events events){
    return events.items;
  }).catchError((e){
    print("error encountered");
    print("${e.toString()}");
  });

不起作用:

DateTime start = new DateTime.now().subtract(new Duration(days: 10));
DateTime end = new DateTime.now().add(new Duration(days: 10));
..
  Future<List<Event>> getEvents() =>
  calendarApi.events.list("primary",
    timeMin: start,
    timeMax: end,
  )
  .then((Events events){
    return events.items;
  }).catchError((e){
    print("error encountered");
    print("${e.toString()}");
  });

为什么?

【问题讨论】:

  • 什么不起作用?你能包括你得到的任何错误消息/日志吗?
  • 给出的唯一错误是“bad request 400”,在 .catchError 方法中,它在屏幕截图的底部
  • 我不确定在这种情况下出了什么问题。我会尝试使用资源管理器工具来尝试缩小问题的根源developers.google.com/calendar/v3/reference/events/list
  • 我完全同意 - 我经常使用那个工具 -

标签: events google-api google-calendar-api flutter


【解决方案1】:

根据 Google 日历 API,timeMin 和 timeMax 值必须遵循 RFC3339 日期标准。

在内部,日历在您传入的 DateTimes 上应用 .toIso8601String()。但这并不能使它们成为有效的 RFC3339 日期。

在传递它们之前调用 .toUtc() 将使它们成为有效的 RFC3339。您可以在DartPadGoogles Api explorer 一起尝试,您会看到不同的响应。

可能有更多方法可以使 DateTime 符合 RFC3339 标准,但这至少应该指出错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    • 2022-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多