1

Возможно ли использовать Google Calendar API v3 с учетными записями служб без домена Google Apps?API календаря Google - учетная запись службы - без домена Google Apps

В основном, что я хочу сделать, это создать событие в моем собственном календаре с помощью скрипта 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 = '[email protected]veloper.gserviceaccount.com' 

credentials = SignedJwtAssertionCredentials(
    service_account_name, 
    key, 
    scope=['https://www.googleapis.com/auth/calendar', 
     'https://www.googleapis.com/auth/calendar.readonly'], 
    sub='[email protected]') 

http = httplib2.Http() 
http = credentials.authorize(http) 

service = build(serviceName='calendar', version='v3', http=http) 

Я получаю эту ошибку:

auth2client.client.AccessTokenRefreshError: unauthorized_client: Несанкционированное клиент или область в запросе

+0

btw - у вас есть скрипт python, который запрашивает пользователя и пароль и может изменить календарь пользователя? Мне было бы интересно увидеть это! – ErikR

ответ

1

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

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

+0

Ну, это не работает. Я получаю эту ошибку: auth2client.client.AccessTokenRefreshError: unauthorized_client: неавторизованный клиент или область в запросе. – Maverick

+0

У меня есть скрипт, который работает с scope = calendar.readonly. Конечно, это не позволит создать событие. Другая возможность - использовать вызовы api для создания календаря, принадлежащего учетной записи службы, а затем поделиться им с вашей учетной записью. – ErikR

+0

Спасибо. Я смог решить свою проблему, читая это сообщение: http://stackoverflow.com/questions/12252644/google-calendar-api-access-own-calendar-via-service-account. Поэтому вместо использования учетной записи службы я использовал обычную учетную запись и использовал сценарий в конце этого сообщения для извлечения и записи токена доступа. Я использую его в течение одной недели и не истек ... Но я не могу найти нигде, если токен истечет или нет, и когда. – Maverick

0

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

Смежные вопросы