使用Google Calendar API v3手动验证我的用户帐户

2024-04-20 07:55:15 发布

您现在位置:Python中文网/ 问答频道 /正文

我想做的是:

允许在我的网站上经过身份验证和授权的用户使用允许他们使用googlecalendar的API在我的日历上创建事件的表单。在

我可以通过Google Calendar API v2手动验证我的Google帐户来实现这一点:

calendar_service = gdata.calendar.service.CalendarService()
calendar_service.email = 'email@site.com'
calendar_service.password = 'password'
calendar_service.source = 'Calendar'
calendar_service.ProgrammaticLogin()

然后,我可以从我的站点表单中输入POST-date并使用API创建一个事件,但是我不知道如何使用API的V3来实现这一点。在

我已阅读文档并尝试实施:

^{pr2}$

但这需要创建一个service对象,而这又需要通过oauth2.0进行帐户身份验证,这不是我要实现的目标。我需要手动验证我自己的日历,而不是询问用户我的应用程序是否可以访问他们的日历。在

我肯定我漏掉了一些基本的逻辑或者做了一些错误的假设。如有任何正确的帮助,我们将不胜感激。在


Tags: 用户身份验证api表单网站emailservicegoogle
2条回答

您必须使用OAuth授权您的代码访问您自己的日历;一旦您这样做,您将获得一个可以保留的令牌。当您的代码再次运行时,它应该重用令牌来连接到您的日历。用户不会受到挑战,但令牌可能会不时刷新。在

不能建议任何代码,因为我个人非常讨厌OAuth:(

@Ben-service对象可以使用密钥/密钥组合创建,也可以使用服务帐户创建,其中使用email/cert组合和prn参数来标识要对其进行操作的用户。这两种方法都需要在API控制台中注册。在

使用服务帐户,您只需在prn参数中指定电子邮件地址,即可将事件插入到您的日历中。insert语句保持不变,因为您使用此规范对您的帐户进行操作。在

credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key,
  scope='https://www.googleapis.com/auth/calendar', prn='you@domain.com')
...

created_event = service.events().insert(calendarId='primary', body=event).execute()

下面是一个例子:https://developers.google.com/drive/delegation

相关问题 更多 >