Проблема управления переадресацией Google Apps с помощью входа в OAuth

Я пытаюсь исправить свой сценарий, который настраивает пересылку почты в Службах Google с новой аутентификацией OAuth2. У меня работает API каталогов, но пересылка перестала работать на прошлой неделе с аутентификацией по имени пользователя и паролю.

Я обновил свой код на основе другой публикации здесь ( включите пересылку почты с использованием учетной записи службы Служб Google), включая то, что похоже на то, что там помечено как "Окончательный рабочий код", но не могу понять, что не так.

При аутентификации я получаю сообщение об ошибке ниже:

Traceback (most recent call last):
  File "./tmp.py", line 26, in <module>
    client.UpdateForwarding(username="chauvetp@hawkmail.newpaltz.edu",  enable=True, forward_to='sysadmin@newpaltz.edu', action='ARCHIVE')
  File "/usr/lib/python2.6/site-packages/gdata/apps/emailsettings/client.py", line 320, in update_forwarding
    return self.update(new_forwarding, **kwargs)
  File "/usr/lib/python2.6/site-packages/gdata/client.py", line 730, in update
    desired_class=entry.__class__, **kwargs)
  File "/usr/lib/python2.6/site-packages/gdata/client.py", line 307, in request
    response, Unauthorized)
gdata.client.Unauthorized: Unauthorized - Server responded with: 401, 

Мой код выглядит следующим образом:

import gdata.gauth
import gdata.apps.emailsettings.client
from oauth2client.client import SignedJwtAssertionCredentials

service_account = My_Service_Account
adminEmail = My_Admin_Email
scope = 'https://apps-apis.google.com/a/feeds/emailsettings/2.0/'

keyfile = file(My_Key_Location,'rb')
key = keyfile.read()
keyfile.close()

credentials = SignedJwtAssertionCredentials(service_account, key, sub=My_Admin_Email, scope='https://apps-apis.google.com/a/feeds/emailsettings/2.0/')

auth = gdata.gauth.OAuth2Token(      
  credentials.client_id,#serviceEmail
  credentials.client_secret,#private key 
  scope='https://apps-apis.google.com/a/feeds/emailsettings/2.0/',
  access_token=credentials.access_token,
  refresh_token=credentials.refresh_token,
  user_agent=credentials.user_agent)
client = gdata.apps.emailsettings.client.EmailSettingsClient(domain='MyDomain')
auth.authorize(client)

client.UpdateForwarding(username="TestAccount", enable=True, forward_to=DestinationAddress, action='ARCHIVE')

Я бы добавил комментарии к предыдущему сообщению, указанному выше, но мой аккаунт здесь новый (и он говорит, что мне нужно 50 репутации, чтобы комментировать). Любая помощь по этому вопросу будет принята с благодарностью!

0 ответов

Другие вопросы по тегам