Calendar 使用dart中的googleapis库更新日历并将其显示在网页上

Calendar 使用dart中的googleapis库更新日历并将其显示在网页上,calendar,google-api,dart,Calendar,Google Api,Dart,我是dart的新手,我一直在想如何使用googleapis库更新日历事件,然后在网页上显示日历/事件 到目前为止,我有一段代码,我希望它能将#textid的文本更改为所选日历id中的事件列表: 导入'dart:html'; 导入“package:googleapis/calendar/v3.dart”; 导入“包:googleapis_auth/auth_io.dart”; final _credentials=新的ServiceAccountCredentials.fromJson(r'' {

我是dart的新手,我一直在想如何使用
googleapis
库更新日历事件,然后在网页上显示日历/事件

到目前为止,我有一段代码,我希望它能将
#text
id的文本更改为所选日历id中的事件列表:

导入'dart:html';
导入“package:googleapis/calendar/v3.dart”;
导入“包:googleapis_auth/auth_io.dart”;
final _credentials=新的ServiceAccountCredentials.fromJson(r''
{
“私钥id”:“myprivatekeyid”,
“私钥”:“myprivatekey”,
“客户电子邮件”:“我的客户邮件”,
“客户id”:“myclientid”,
“类型”:“服务账户”
}
''');
const _SCOPES=const[CalendarApi.CalendarScope];
void main(){
clientViaServiceAccount(\u凭据,\u作用域)。然后((http\u客户端){
var calendar=新的CalendarApi(http_客户端);
字符串adminPanelCalendarId='mycalendarID';
var event=calendar.events;
var events=event.list(adminPanelCalendarId);
事件。然后((showEvents){
querySelector(“#text2”).text=showEvents.toString();
});
});
}
但网页上没有显示任何内容。我想我误解了如何在dart中使用客户端和服务器端代码。。。我是否将文件拆分为多个文件?如何更新日历并使用dart将其显示在网页上

我熟悉
浏览器
包,但这是我第一次用服务器端库编写任何东西(
googleapis
使用
dart:io
所以我假设它是服务器端的?我无法在dartium中运行代码)


如果有人能为我指出正确的方向,或提供一个如何实现这一目标的例子,我将非常感激

使用以下代码,您可以显示与已登录帐户关联的日历事件。在本例中,我使用了来自Google云控制台项目的id和密钥的createImplicitBrowserFlow(请参阅中的文档)

导入'dart:html';
导入“package:googleapis/calendar/v3.dart”;
将“package:googleapis_auth/auth_browser.dart”作为auth导入;
var id=new auth.ClientId(“,”);
var scopes=[CalendarApi.CalendarScope];
void main(){
auth.createImplicitBrowserFlow(id,作用域)。然后((auth.BrowserAuth2Flow){
flow.ClientViaUserApprove().then((auth.AuthClient客户端){
var calendar=新CalendarApi(客户端);
字符串adminPanelCalendarId='primary';
var event=calendar.events;
var events=event.list(adminPanelCalendarId);
事件。然后((showEvents){
showEvents.items.forEach((事件ev){print(ev.summary);});
querySelector(“#text2”).text=showEvents.toString();
});      
client.close();
flow.close();
});
});
}

您可能要查找的是。这将产生两个项目

  • 访问凭据(用于客户端API访问)
  • 授权代码(用于使用用户凭据进行服务器端API访问)
从文件中:

用例:web应用程序可能希望获得代表用户访问数据的许可。客户端部分是一个动态webapp,它希望打开一个弹出窗口,请求用户同意。webapp可能希望使用凭据进行API调用,但服务器也可能希望脱机访问用户数据


此页面描述了此流程的工作原理。

如果我想使用服务帐户执行此操作,此代码是否有效?还有,你能解释一下吗?就像我说的,我是dart的新手,我不确定这里到底发生了什么:/JoaoBiriba,谢谢你的帮助。你对服务帐户是什么意思?您可以与任何帐户一起使用,因为它必须登录才能授权客户端。在googleapis_auth的文档中,还有其他解决方案。服务帐户不需要用户身份验证。我想设置我的个人谷歌日历,以显示可由我的服务器更新的事件。用户不必更新自己的日历或向我的日历中添加任何事件。这是用于显示我从数据库中提取的信息。我明白了问题所在,你必须开发一个服务器到服务器的应用程序,所以我认为你必须在一个项目中使用auth_io.dart(服务器)和一个使用来自itSee的数据的客户机,