我是 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
uses dart:io
所以我认为它是服务器端的?我无法在 dartium 中运行代码)。
如果有人能给我指出正确的方向,或者提供一个如何实现这一目标的例子,我将非常感激!
您可能正在寻找的是混合流 http://www.dartdocs.org/documentation/googleapis_auth/0.2.2/index.html#googleapis_auth/googleapis_auth-auth_browser.BrowserOAuth2Flow@id_runHybridFlow。这会产生两个项目
- 访问凭证(用于客户端 API 访问)
- 授权代码(用于使用用户凭据的服务器端 API 访问)
从文档中:
使用案例:Web 应用程序可能希望获得代表用户访问数据的同意。客户端部分是一个动态 Web 应用程序,它想要打开一个弹出窗口,请求用户同意。 Web 应用程序可能希望使用凭据进行 API 调用,但服务器也可能希望离线访问用户数据。
这一页服务器端应用程序的 Google+ 登录 https://developers.google.com/+/web/signin/server-side-flow?hl=da描述了该流程的工作原理。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)