gpt4 book ai didi

google-api - 使用 dart 和 flutter 与 google calendar api 获取用户日历上的事件列表

转载 作者:IT王子 更新时间:2023-10-29 06:38:56 25 4
gpt4 key购买 nike

我正在尝试通过重新构建我之前用 Java 编写的应用来学习如何使用 dart 和 flutter,这涉及使用 Google 自己的日历 API 从 Google 日历获取事件。

通过阅读(一个不是很详细)documentation on the googleapis_auth package ,以及 only other thread在 StackOverflow 上关于一个非常相似的问题,我已经设法将理论上应该工作的代码放在一起:

import 'package:googleapis/calendar/v3.dart';
import 'package:googleapis_auth/auth_io.dart';

//get Service Account Credentials
final accountCredentials = new ServiceAccountCredentials.fromJson({
"private_key_id": "myprivatekeyid",
"private_key": "myprivatekey",
"client_email": "myclientemail",
"client_id": "myclientid",
"type": "service_account"
});
var _scopes = [CalendarApi.CalendarScope]; //defines the scopes for the calendar api

void getCalendarEvents() {
clientViaServiceAccount(accountCredentials, _scopes).then((client) {
var calendar = new CalendarApi(client);
var calEvents = calendar.events.list("primary");
calEvents.then((Events events) {
events.items.forEach((Event event) {print(event.summary);});
});
});
}

上面的代码在模拟器上运行时不会产生任何错误,也不会在控制台中打印任何事件摘要。但是当查看项目的仪表板时,请求通过响应代码 200,也就是成功。我还尝试使用嵌套在 clientViaServiceAccount 中的类似代码来获取我所有日历的 ID,但它也没有返回任何内容。

此外,根据文档,我发现访问 API 的最简单方法是通过客户端服务帐户(如代码中所示),而不是通过我更习惯的 OAuth2 客户端 ID。

我错过了什么吗?代码有错吗?也许我需要弄乱服务帐户上的设置?任何帮助将不胜感激。

最佳答案

我能够使用您的代码进行一次更改(第 6 步)。首先,确保服务器端设置正确(步骤 1-5)。
Google 开发者控制台
1. 创建项目
2. 启用日历接口(interface)
3. 创建服务账户 - 下载 json 凭证
Google 日历设置
4. 分享给特定的人-添加服务账号邮箱
5. 复制日历 ID (alphanumericstring@group.calendar.google.com)
您的代码
6. 将“primary”替换为第 5 步中的日历 ID

https://murze.be/how-to-setup-and-use-the-google-calendar-api 上有对步骤 1-5 的详细概述。 .它们适用于 PHP,但 Google 端的设置是相同的。

希望这对某人有帮助。

关于google-api - 使用 dart 和 flutter 与 google calendar api 获取用户日历上的事件列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49414279/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com