我是 Dart 新手,我一直在尝试弄清楚如何使用 googleapis
库来更新日历事件,然后在网页上显示日历/事件。
到目前为止,我有这个代码,我希望只是改变 #text
id 的文本到所选日历 ID 中的事件列表:
import 'dart:html';
import 'package:googleapis/calendar/v3.dart';
import 'package:googleapis_auth/auth_io.dart';
final _credentials = new ServiceAccountCredentials.fromJson(r'''
{
"private_key_id": "myprivatekeyid",
"private_key": "myprivatekey",
"client_email": "myclientemail",
"client_id": "myclientid",
"type": "service_account"
}
''');
const _SCOPES = const [CalendarApi.CalendarScope];
void main() {
clientViaServiceAccount(_credentials, _SCOPES).then((http_client) {
var calendar = new CalendarApi(http_client);
String adminPanelCalendarId = 'mycalendarID';
var event = calendar.events;
var events = event.list(adminPanelCalendarId);
events.then((showEvents) {
querySelector("#text2").text = showEvents.toString();
});
});
}
但是网页上什么也没有显示。我想我误解了如何在 dart 中使用客户端和服务器端代码......我是否将文件分成多个文件?我将如何更新日历并使用 dart 在网页上显示它?
我熟悉
browser
包,但这是我第一次使用服务器端库编写任何东西(googleapis
使用 dart:io
所以我假设它是服务器端的?我无法在 dartium 中运行代码)。如果有人能指出我正确的方向,或者提供一个如何实现这一点的例子,我将不胜感激!
最佳答案
您可能正在寻找的是 hybrid flow .这会产生两个项目
从文档中:
用例:Web 应用程序可能希望获得代表用户访问数据的同意。客户端部分是一个动态的 web 应用程序,它想要打开一个弹出窗口,要求用户同意。 webapp 可能想要使用凭证来进行 API 调用,但服务器可能也想要离线访问用户数据。
页面Google+ Sign-In for server-side apps描述了这个流程是如何工作的。
关于calendar - 使用 dart 中的 googleapis 库更新日历并将其显示在网页上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27235387/