是否可以将Google Calendar API v3与服务帐户配合使用,而无需使用Google应用域?
基本上我想要做的是使用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:请求中未经授权的客户端或范围
答案 0 :(得分:1)
是 - 只需创建一个服务帐户,这将为您提供该帐户的电子邮件地址。
然后只需与该电子邮件地址共享您的日历,即可获得所需的任何权限。
答案 1 :(得分:0)
授予Google服务帐户访问权限。在我的情况下,我试图使用服务帐户将文件推送到谷歌驱动器。通过授权访问我的谷歌驱动器上的文件夹到服务帐户(电子邮件),我能够在我的帐户下查看文件并在谷歌驱动器上创建文件。