1

是否可以在没有 Google Apps 域的情况下将 Google Calendar 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:未授权客户端:请求中的未授权客户端或范围

4

2 回答 2

1

是的 - 只需创建一个服务帐户,这将为您提供该帐户的电子邮件地址。

然后只需与该电子邮件地址共享您的日历,为其提供所需的任何权限。

于 2015-01-21T18:54:44.130 回答
0

授予服务帐户访问谷歌资源的权限。就我而言,我试图使用服务帐户将文件推送到谷歌驱动器上。通过将我的谷歌驱动器上的文件夹的访问权限授予服务帐户(电子邮件),我能够在我的帐户下查看文件并在谷歌驱动器上创建文件。

于 2015-11-10T05:41:58.763 回答