新しい OAuth2 認証を使用して Google Apps でメール転送を設定するスクリプトを修正しようとしています。ディレクトリ API は正常に動作していますが、先週、ユーザー名/パスワード認証で転送が機能しなくなりました。
ここの別の投稿 ( Google Apps サービス アカウントを使用してメール転送を有効にする ) に基づいてコードを更新しました。これには、「最終作業コード」とラベル付けされているものと同じように見えるものも含まれますが、何が間違っているのかわかりません。
認証時に、次のエラーが表示されます。
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 必要だと書かれています)。これに関するご支援をいただければ幸いです。