Drive API を使用して Google Apps ドメインを検査しています。サービスを正常に作成しましたが、ドメインに一時停止中のユーザーがいる場合、すべてのユーザーの権限 ID を取得しようとして失敗します。get_about 関数を使用すると、401 Unauthorized : Invalid Credentials が発生します。とにかくそのエラーを回避する方法はありますか? どうにかして別の種類のサービスを作成する必要がありますか? 現在、そのユーザーをスキップすることを余儀なくされています。
#Passing in a already created user service
def get_about(service):
return service.about().get().execute()
サービスを作成する場所は次のとおりです。
class DriveService(object):
"""
The main entry class to constructing the google drive api client service
We wrap the service so it can be used as normal but with some error
handling provided
"""
raw_service = None
http = None
auth_scope = 'https://www.googleapis.com/auth/drive'
def __init__(self, user_email):
key_file_path = os.path.join(os.path.split(__file__)[0],
SERVICE_ACCOUNT_PEM_FILE)
with open(key_file_path, 'rb') as f:
key = f.read()
credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL,
key,
scope=self.auth_scope,
prn=user_email)
self.user_email = user_email
self.http = credentials.authorize(httplib2.Http())
try:
self.raw_service = build('drive', 'v2', http=self.http,
requestBuilder=BackoffHttpRequest,
)
except:
import pdb
pdb.set_trace()
def __getattr__(self, attr):
try:
return object.__getattribute__(self, attr)
except AttributeError:
return getattr(self.raw_service, attr)