API календаря Google не добавляет событие и не выдает ошибку - PullRequest
1 голос
/ 29 января 2020

my calendar

the code

The calendar the link takes me to

I ' Я пытаюсь последовать примеру Google по добавлению события, и изначально оно выдает ошибки, потому что я что-то отформатировал неправильно, но теперь оно говорит о том, что событие создается, и связывает меня с ним, но на самом деле оно не создается. 3-е изображение, которое я прикрепил, является результатом, и в нем есть небольшое всплывающее окно с сообщением об ошибке добавления события. Странно то, что ни одно из моих событий вообще не отображается в календаре, хотя я вошел в одну и ту же учетную запись в обоих случаях и только один календарь. Событие никогда не добавляется в мой календарь. Я пытался запустить его несколько раз, даже используя разные данные в событии и тот же результат, он говорит, что добавляет его, но никогда не делает. Я потерял любую помощь, очень признателен, пожалуйста, не стесняйтесь просить больше информации, если вам нужно!

edit: вот моя функция создания событий

def createEvent(summary, start_time, end_time, *args, description='', location='', timeZone='America/New_York'):

    credentials = get_credentials()
    service = discovery.build('calendar', 'v3', credentials=credentials)

    event = {
      'summary': summary,
      'location': location,
      'description': description,
      'start': {
        'dateTime': start_time,
        'timeZone': timeZone,
      },
      'end': {
        'dateTime': end_time,
        'timeZone': timeZone,
      },

      'reminders': {
        'useDefault': False,
        'overrides': [
          # {'method': 'email', 'minutes': 24 * 60},
          {'method': 'popup', 'minutes': 10},
        ],
      },
    }

    for arg in args:
        event[arg[0]] = arg[1]

    event = service.events().insert(calendarId='primary', body=event).execute()
    print ('Event created: %s' % (event.get('htmlLink')))

edit 2: вот как функция вызывается с примером информации, переданной в

googEvent = ['CSC 385 hw', '20-1-31T22:59:59', '20-1-31T23:59:59', 'EC Mylavarapu']

createEvent(googEvent[0], googEvent[1], googEvent[2], description=googEvent[3])

1 Ответ

1 голос
/ 31 января 2020

После изучения вашего кода я обнаружил, что вы так близки к его исправлению. Вам нужно только принудительно установить формат даты в ISO 8601 . Для этого sh я использовал следующие Python методы:

import datetime
…
googEvent = ['CSC 385 hw', datetime.datetime.strptime("31/01/2020 22:59:59",
  "%d/%m/%Y %H:%M:%S").isoformat(), datetime.datetime.strptime(
  "31/01/2020 23:59:59", "%d/%m/%Y %H:%M:%S").isoformat(), 'EC Mylavarapu']
createEvent(googEvent[0], googEvent[1], googEvent[2], description = googEvent[3])

Это только один из способов сделать это. Каждая дата сначала создается из читаемой человеком строки, используя strptime(), а затем преобразуется в ISO 8601 с isoformat(). Пожалуйста, ответьте мне, если вам нужна дополнительная помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...