带有oauth2的管理员设置API
我正在尝试使用OAuth2凭据将以python编写的应用连接到Admin Settings API,但出现错误:
源代码:
from oauth2client.client import Credentials
import gdata.apps.adminsettings.service
import gdata.gauth
#credentials_json is a string with an oauth2 credential that is saved in datastore
#domain_name is the name of the target domain
#app_name is my application name
credentials = Credentials.new_from_json(credentials_json)
auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials)
service = gdata.apps.adminsettings.service.AdminSettingsService(source=app_name,domain=domain_name)
service = auth2token.authorize(service)
print service.GetMaximumNumberOfUsers()
异常(exception):
Traceback (most recent call last):
File "<input>", line 25, in <module>
File "xxxxxxx\lib\gdata\apps\adminsettings\service.py", line 116, in GetMaximumNumberOfUsers
result = self.genericGet('general/maximumNumberOfUsers')
File "xxxxxxx\lib\gdata\apps\adminsettings\service.py", line 50, in genericGet
return self._GetProperties(uri)
File "xxxxxxx\lib\gdata\apps\service.py", line 522, in _GetProperties
str(self.Get(uri))))
File "xxxxxxx\lib\gdata\service.py", line 1069, in Get
headers=extra_headers)
File "xxxxxxx\lib\atom\__init__.py", line 93, in optional_warn_function
return f(*args, **kwargs)
File "xxxxxxx\lib\atom\service.py", line 186, in request
data=data, headers=all_headers)
File "xxxxxxx\lib\atom\http_interface.py", line 148, in perform_request
return http_client.request(operation, url, data=data, headers=headers)
TypeError: new_request() takes exactly 1 argument (4 given)
非常感谢您的关注
卡洛斯·普里托(Carlos Prieto)
最佳答案
从AdminSettings API using service account auth/keyword failures看来,gdata服务对象不支持Oauth 2.0。使用gdata Contacts服务对象时,我也遇到了类似的错误,而是通过使用Contacts客户端对象对其进行了修复。管理员设置应用似乎没有客户端,只有服务,但是链接的stackoverflow页面具有解决方法。
关于python - gdata和python中具有oauth2的管理员设置API,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23397161/