API Календаря Google - учетная запись службы - без домена приложений Google

Можно ли использовать 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: неавторизованный клиент или область в запросе

2 ответа

Да - просто создайте учетную запись службы, и это даст вам адрес электронной почты для учетной записи.

Затем просто поделитесь своим календарем с этим адресом электронной почты, предоставив ему все необходимые разрешения.

Работает предоставление доступа к ресурсам гугл сервисной учетной записи. В моем случае я пытался использовать служебную учетную запись для загрузки файлов на диск Google. Предоставив доступ к папке на моем диске Google для учетной записи службы (электронная почта), я смог просматривать файлы и создавать файлы на диске Google под своей учетной записью.

Другие вопросы по тегам