首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Firebase函数中访问用户的Google日历

在Firebase函数中访问用户的Google日历
EN

Stack Overflow用户
提问于 2019-10-01 15:33:43
回答 1查看 1.2K关注 0票数 0

任务是向现有的颤振应用程序添加云功能。云功能的目标是每隔一段时间运行一次,看看用户帐户是否有即将到来的事件出现在Google日历中。

用户创建帐户并使用Google登录插件登录,然后存储在firebase中。

我已经向GoogleSignIn对象添加了我需要的范围

代码语言:javascript
运行
复制
static GoogleSignIn _googleSignIn = GoogleSignIn(
  scopes: [
    'email',
    'https://www.googleapis.com/auth/calendar.events.readonly',
  ],
);

登录过程

代码语言:javascript
运行
复制
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
    await googleUser.authentication;

final AuthCredential credential = GoogleAuthProvider.getCredential(
  accessToken: googleAuth.accessToken,
  idToken: googleAuth.idToken,
);
final FirebaseUser user = await _auth.signInWithCredential(credential);
//update user table in firebase

此时,Google返回一个访问令牌,我已经将它存储在firebase中,以供以后在云函数中使用。

我有来自Google控制台中web应用程序/云功能api项目的客户端id &客户端机密。

现在,我不确定如何使用googleapis /日历节点项目来使用这个访问令牌来进入用户日历。

所有示例似乎都希望我再次创建另一个具有作用域的oauth2客户机来检索令牌,但显然用户不会这样做,因为当用户不使用该应用程序时,他的所有这些都会发生在后台。

我是否需要建立一个服务帐户,然后可以代表用户访问这些日历?这能办到吗?我正努力通过Google文档找到答案。

EN

回答 1

Stack Overflow用户

发布于 2019-10-01 16:24:21

我想(但让我们看看专家是怎么说的),因为云函数是代表(!)因为它是异步操作的,所以服务帐户是正确的方法。

为了支持这一点,云函数作为服务帐户运行,因此,它们对其他Google服务(包括Calendar)的任何调用都将作为该服务帐户。

您可能希望考虑委托链接

在你们实施这一点之前,我鼓励你们等着看专家们说些什么。但是,在您等待时,可能值得查看该链接;-)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58188139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档