備忘録。
xsdの部分で何日か詰まったので自分用にメモ。
###参照
【cybozu developer network】Garoon SOAP APIの共通仕様
https://developer.cybozu.io/hc/ja/articles/202228464
【cybozu developer network】ユーザー情報を取得する
https://developer.cybozu.io/hc/ja/articles/202283324
###ソース
from zeep import Client
from zeep import xsd
client = Client(wsdl='https://(サブドメイン名).cybozu.com/g/index.csp?WSDL')
header = xsd.ComplexType([
xsd.Element('Action', xsd.String()),
xsd.Element('Security',
xsd.ComplexType([xsd.Element(
'UsernameToken',
xsd.ComplexType([
xsd.Element('Username', xsd.String()),
xsd.Element('Password', xsd.String()),
])
)]
)),
xsd.Element('Timestamp',
xsd.ComplexType([
xsd.Element('Created', xsd.String()),
xsd.Element('Expires', xsd.String()),
])
),
xsd.Element('Locale', xsd.String()),
])
header_value = header(
Action="BaseGetUsersById",
Security={'UsernameToken':{'Username':'','Password':''}},
Timestamp={'Created':'2010-08-12T14:45:00Z','Expires':'2037-08-12T14:45:00Z'},
Locale="jp")
request_data = {
'parameters': {'user_id':[3, 4, 5]}
}
try:
response = client.service.BaseGetUsersById(**request_data, _soapheaders=[header_value])
except:
import traceback
traceback.print_exc()
###出力結果
list型で返却される
[{
'photo': None,
'organization': [
{
'id': 'x',
'_attr_1': {
}
}
],
'acl': None,
'_value_1': None,
'key': '6',
'version': 'XXXX',
'order': XXXX,
'name': 'XXXX',
'status': 0,
'reading': 'XXXXXXX',
'url': None,
'email': 'xxxxx@xxxx.co.jp',
'phone': 'xxx-xxxx-xxxx',
'birth_date': '1970-01-01',
'join_date': '1970-01-01',
'employee_number': None,
'extension_number': None,
'employment_pattern': None,
'title': None,
'office': None,
'description': None,
'primary_organization': '0',
'_attr_1': {
'login_name': 'xxxx'
}
}]
・サブドメインの変更
・request_dataのidは適当に変える。
・header_valueのUsernameとPasswordの値を入力する。