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

2024-04-29

我是 dart 新手,我一直在尝试弄清楚如何使用googleapis库来更新日历事件,然后在网页上显示日历/事件。

到目前为止,我有这段代码,我希望它能改变#textid 的文本到所选日历 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(使用前将#替换为@)

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

随机推荐