【问题标题】:How to get all event in a month use google calendar api in flutter?如何在一个月内使用谷歌日历 API 获取所有事件?
【发布时间】:2020-07-19 04:52:06
【问题描述】:

我想从 Flutter 中的谷歌日历 API 获取 1 个月内的所有事件。

我在这里咨询过,但没有关于颤振的说明 https://developers.google.com/calendar/v3/reference/events/get

我导入 https://pub.dev/packages/googleapis 但我找不到任何示例。

如果您已经这样做或有任何样品。请分享给我。

【问题讨论】:

标签: flutter dart


【解决方案1】:

经过 1 天的研究。我做了如下

导入库

date_utils: ^0.1.0+3

googleapis_auth: ^0.2.11+1

googleapis: ^0.54.0

代码

final GoogleSignIn _googleSignIn =
        GoogleSignIn(
          scopes: <String>[
            CalendarApi.CalendarScope,
          ],
        )

signInWithGoogle() async {
   await _googleSignIn.signIn();
   final headers = await _googleSignIn.currentUser.authHeaders;
   getEvent(headers);
}


getEvent(headers) async {
final httpClient = GoogleHttpClient(headers);
var calendar = CalendarApi(httpClient);
DateTime lastMonth = Utils.lastDayOfMonth(DateTime.now());
DateTime firstMonth = Utils.firstDayOfMonth(DateTime.now());
var calEvents = calendar.events.list("primary", timeMax: lastMonth.toUtc(), timeMin: firstMonth.toUtc());
calEvents.then(
    (events) => {events.items.forEach((event) => print("EVENT ${event.summary}"))});
}

这是 GoogleHttpClient.class

 import 'package:http/io_client.dart';
import 'package:http/http.dart';

class GoogleHttpClient extends IOClient {
Map<String, String> _headers;

 GoogleHttpClient(this._headers) : super();

 @override
 Future<StreamedResponse> send(BaseRequest request) =>
  super.send(request..headers.addAll(_headers));

 @override
 Future<Response> head(Object url, {Map<String, String> headers}) =>
  super.head(url, headers: headers..addAll(_headers));

 }

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-13
    相关资源
    最近更新 更多