как получить адрес электронной почты вместе с учетными данными для календаря после разрешения пользователя - PullRequest
0 голосов
/ 01 апреля 2020

как получить адрес электронной почты владельца после разрешения пользователя

  SCOPES = ['https://www.googleapis.com/auth/calendar']  
  flow = InstalledAppFlow.from_client_secrets_file(credentials.json, SCOPES)
  creds = flow.run_local_server(port=0)
  service = build('calendar', 'v3', credentials=creds)
  event_body = {
     'summary': 'Test calendar',
    'location': 'Gurgaon, Haryana',
    'description': 'A chance to hear more about Google\'s developer 
      products.',
  'start': {
    'dateTime': '2020-03-28T09:00:00-07:00',
    'timeZone': 'Asia/Kolkata',
    },
'end': {
    'dateTime': '2020-03-28T17:00:00-07:00',
    'timeZone': 'America/Los_Angeles',
   },

'attendees': [
    {'email': 'user@gmail.com'},
   ],
'reminders': {
    'useDefault': False,
  },
"visibility": "public",
   }
 event = service.events().insert(calendarId='primary',body=evnt_body)  

Также попытался добавить 'https://www.googleapis.com/auth/userinfo.email' это область действия, но она возвращает None в учетных данных. Мне нужно добавить адрес электронной почты владельца в список посещаемости

1 Ответ

0 голосов
/ 02 апреля 2020

Вы можете позвонить на Users.getProfile и указать специальное значение me до userId, чтобы указать аутентифицированного пользователя:

gmail_service = build('gmail', 'v1', credentials=creds)
email_address = gmail_service.users().getProfile(userId='me').execute()["emailAddress"]

Примечание:

  • Необходимо указать одну из этих областей .
  • Обратите внимание, что пользователь, создавший событие, по умолчанию добавляется в качестве участника. Возможно, вам не потребуется указывать этого пользователя при создании события.

Ссылка:

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