是否可以在没有Google Apps 域的情况下将 Google 日历 API v3 与服务帐户一起使用?
基本上我想做的是使用 python 脚本在我自己的日历上创建一个事件,而无需脚本提示我输入用户和密码......有人知道吗?
我使用了这段代码,但没有运气:
import pprint
import pytz
import httplib2
import requests
from datetime import datetime, timedelta
from apiclient.discovery import build
from oauth2client.client import SignedJwtAssertionCredentials
with open('/home/xpto/service_account_certificate.pem', 'rb') as f:
key = f.read()
service_account_name = '000000000000-j...@developer.gserviceaccount.com'
credentials = SignedJwtAssertionCredentials(
service_account_name,
key,
scope=['https://www.googleapis.com/auth/calendar',
'https://www.googleapis.com/auth/calendar.readonly'],
sub='xpto@gmail.com')
http = httplib2.Http()
http = credentials.authorize(http)
service = build(serviceName='calendar', version='v3', http=http)
我收到此错误:
auth2client.client.AccessTokenRefreshError: unauthorized_client:请求中存在未经授权的客户端或范围
- 只需创建一个服务帐户,这将为您提供该帐户的电子邮件地址。
然后,只需与该电子邮件地址共享您的日历,即可为其提供所需的任何权限。
授予 Google 资源对服务帐号的访问权限是有效的。就我而言,我尝试使用服务帐户将文件推送到Google云端硬盘。通过向服务帐户(电子邮件)授予我的谷歌驱动器上的文件夹的访问权限,我能够在我的帐户下的谷歌驱动器上查看文件和创建文件。