title: 403 "Request had insufficient authentication scopes" when creating drafts in Google API with Python
body: <p>I am working with the google api for the first time, and am new to coding in general, and have a question that I'm sure is very simple, but I cannot find the answer to. When I run the following code - </p>
  
  <pre><code>credentials = get_credentials()
  http = credentials.authorize(httplib2.Http())
  service = discovery.build('gmail', 'v1', http=http)
  
  results = service.users().labels().list(userId='me').execute()
  labels = results.get('labels', [])
  
  if not labels:
      print('No labels found.')
  else:
      print('Labels:')
      for label in labels:
          print(label['name'])
  
  
  message_body = "This is the message"
  
  message = {'message': message_body}
  
  draft = service.users().drafts().create(userId='me', body=message).execute()
  </code></pre>
  
  <p>I am successfully able to list the labels in my gmail account, but the request to create a draft kicks back an error message "Request had insufficient authentication request". I found that creating drafts requires one of the following scopes: </p>
  
  <ul>
  <li><a href="https://mail.google.com/" rel="noreferrer">https://mail.google.com/</a></li>
  <li><a href="https://www.googleapis.com/auth/gmail.modify" rel="noreferrer">https://www.googleapis.com/auth/gmail.modify</a></li>
  <li><a href="https://www.googleapis.com/auth/gmail.compose" rel="noreferrer">https://www.googleapis.com/auth/gmail.compose</a></li>
  </ul>
  
  <p>but for the life of me, I cannot figure out what exactly that means or how to make that happen, though I've done my best to find this somewhere. </p>