Я получаю Insufficient permissions
при попытке вызвать метод acl.list календаря Google api через python.«Недостаточно прав» в Google календаре api's acl.list
service.acl().list(calendarId='primary').execute();
*** HttpError: <HttpError 403 when requesting https://www.googleapis.com/calendar/v3/calendars/primary/acl?alt=json returned "Insufficient Permission">
Я использую рамки «https://www.googleapis.com/auth/calendar», как это рекомендовано в документации. Кроме того, другие методы API работают, например service.calendarList
service.calendarList().list(pageToken=page_token).execute()
Что мне не хватает?
Вот код, я использую практически полностью основывался на образце они обеспечивают:
import sys
from oauth2client import client
from googleapiclient import sample_tools
def main(argv):
# Authenticate and construct service.
# import pdb;pdb.set_trace()
service, flags = sample_tools.init(
argv, 'calendar', 'v3', __doc__, __file__,
# scope='https://www.googleapis.com/auth/calendar.readonly')
scope='https://www.googleapis.com/auth/calendar')
try:
page_token = None
while True:
calendar_list = service.calendarList().list(pageToken=page_token).execute()
for calendar_list_entry in calendar_list['items']:
print calendar_list_entry['summary']
page_token = calendar_list.get('nextPageToken')
service.acl().list(calendarId='primary').execute();
if not page_token:
break
except client.AccessTokenRefreshError:
print ('The credentials have been revoked or expired, please re-run'
'the application to re-authorize.')
if __name__ == '__main__':
main(sys.argv)
Какую аутентификацию вы используете? Используете ли вы широкую аутентификацию делегирования? Если да, вам необходимо убедиться, что вы разрешили доступ к API для вашей дочерней учетной записи. –
Я использую Oauth2.0 – erjoalgo
@erjoalgo Любая идея относительно того, почему доступ к readonly не удается? Я не мог найти разрешения на чтение/запись, необходимые для документирования в любом месте, но без них они не работают. Я просто хочу просмотреть/list() список управления доступом - не изменять его. – Vreality