title: Using Google API Python client with SignedJwtAssertionCredentials
body: <p>I am trying to get a list of users from Google using google_api_python_client-1.4.0. I getting the access_denied error even through I have domain wide delegation authority.</p>
  
  <p>Interesting thing is that.. when I use the same certificate/credentials with .net client library, it works.</p>
  
  <p>The error I am getting is
    <strong>File "/Library/Python/2.7/site-packages/oauth2client-1.4.6-py2.7.egg/oauth2client/client.py", line 807, in _do_refresh_request
  oauth2client.client.AccessTokenRefreshError: access_denied: Requested client not authorized.</strong></p>
  
  <pre><code># Load the key in PKCS 12 format that you downloaded from the Google API
  # Console when you created your Service account.
  f = file('Gkeys/87ty8g87-privatekey.p12', 'rb')
  key = f.read()
  f.close()
  # Create an httplib2.Http object to handle our HTTP requests and authorize it
  # with the Credentials. Note that the first parameter, service_account_name,
  # is the Email address created for the Service account. It must be the email
  # address associated with the key that was created.
  credentials = SignedJwtAssertionCredentials(
      '889h98h98h98h98h9lurk@developer.gserviceaccount.com',
      key,
      scope=['https://www.googleapis.com/auth/admin.directory.group.readonly','https://www.googleapis.com/auth/admin.directory.user.readonly'],
      private_key_password='notasecret',
      sub='admin.user@domain.com'
  
  )
  
  
  http = httplib2.Http()
  http = credentials.authorize(http)
  
  
  directory_service = build('admin', 'directory_v1', http=http)
  
  all_users = []
  page_token = None
  
  params = {'groupKey': 'groupname@domain.com'}
  
  while True:
    try:
      if page_token:
        params['pageToken'] = page_token
      #current_page = directory_service.users().list(**params).execute()
      #current_page = directory_service.members().list(**params).execute()
      current_page = directory_service.members().list(groupKey='groupname@domain.com').execute()
  
      all_users.extend(current_page['users'])
      page_token = current_page.get('nextPageToken')
      if not page_token:
        break
    except errors.HttpError as error:
      print 'An error occurred: %s' % error
      break
  
  for user in all_users:
    print user['primaryEmail']
  </code></pre>