Holen Sie sich mit Python + Zeep einen Zeitplan von der Garoon SOAP API

Memorandum.

Vorheriger Artikel

Holen Sie sich mit Python + Zeep Benutzerinformationen von der Garoon SOAP API https://qiita.com/yamashi6/items/d360546eb4ccf2495951

Referenz

Allgemeine Spezifikationen der Garoon SOAP API https://developer.cybozu.io/hc/ja/articles/202228464

Suche nach Terminen https://developer.cybozu.io/hc/ja/articles/202235474

Quelle

from zeep import Client
from zeep import xsd

client = Client(wsdl='https://(Name der Subdomain).cybozu.com/g/index.csp?WSDL')

#Sie können die Zeitplanerfassung nur verwenden, wenn Sie binden
sc_client = client.bind('ScheduleService', 'SchedulePort')

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="ScheduleSearchEvents", 
        #Benutzer und Passwörter ändern
        Security={'UsernameToken':{'Username':'','Password':''}}, 
        Timestamp={'Created':'2010-08-12T14:45:00Z','Expires':'2037-08-12T14:45:00Z'},
        Locale="jp")

#Diese Schreibweise ist auch in Ordnung
# header_value = header("ScheduleSearchEvents", 
#         {'UsernameToken':{'Username':'', 'Password':''}}, 
#         {'Created':'2010-08-12T14:45:00Z','Expires':'2037-08-12T14:45:00Z'},
#         'jp') 

request = xsd.Element('parameters',
            xsd.ComplexType([
                xsd.Attribute('text', xsd.String()),
                xsd.Attribute('start', xsd.String()),
                xsd.Attribute('end', xsd.String()),
                xsd.Attribute('title_search', xsd.Boolean()),
                xsd.Attribute('customer_search', xsd.Boolean()),
                xsd.Attribute('memo_search', xsd.Boolean()),
                xsd.Attribute('follow_search', xsd.Boolean()),
                xsd.Attribute('all_repeat_events', xsd.Boolean())])
        )


request_data = request("test","2019-06-06T02:00:00Z", "2019-07-07T02:00:00Z", True, False, False, False, False)

#Diese Schreibweise ist auch in Ordnung
# request_data = request(
#     text='test', 
#     start= "2019-06-06T02:00:00Z", 
#     end="2019-10-07T02:00:00Z",
#     title_search= True,
#     customer_search=False,
#     memo_search=False,
#     follow_search=False,
#     all_repeat_events=False   
# )

try:
    response = sc_client.ScheduleSearchEvents(request_data, _soapheaders=[header_value])
    #In Liste zurückgegeben
    print(response)

except:
    import traceback
    traceback.print_exc()

Ausführungsergebnis

In Liste zurückgegeben

[{
    'members': {
        'member': [
            {
                'user': {
                    'id': '1',
                    'order': 0,
                    '_attr_1': {
                        'name': 'Yamada Taro'
                    }
                },
                'organization': None,
                'facility': None,
                '_value_1': None,
                '_attr_1': None
            }
        ],
        '_value_1': None,
        '_attr_1': None
    },
    'observers': None,
    'customer': None,
    'repeat_info': None,
    'when': {
        '_attr_1': None,
        'datetime': [
            {
                '_value_1': None,
                'start': datetime.datetime(2019, 6, 20, 10, 0, tzinfo=<isodate.tzinfo.Utc object at 0x000001B4773B0F08>),
                'end': datetime.datetime(2019, 6, 20, 12, 0, tzinfo=<isodate.tzinfo.Utc object at 0x000001B4773B0F08>),
                'facility_id': None,
                '_attr_1': {
            }
            }
        ],
        'date': None
    },
    'follows': None,
    'file': [],
    'remove_file_id': [],
    '_value_1': None,
    'id': '11111',
    'event_type': 'normal',
    'version': '111111111',
    'public_type': 'public',
    'plan': 'Treffen',
    'detail': 'test',
    'description': 'test',
    'timezone': 'Asia/Tokyo',
    'end_timezone': 'Asia/Tokyo',
    'allday': False,
    'start_only': False,
    'hidden_private': None,
    'facility_using_purpose': None,
    '_attr_1': {
}
}]

Recommended Posts

Holen Sie sich mit Python + Zeep einen Zeitplan von der Garoon SOAP API
Behandeln Sie die SOAP-API von Python (Zeep)
Holen Sie sich Bewertungen mit Python Googlemap API
Python Holen Sie sich das kommende Wetter von der Wetter-API
Abrufen von Daten aus der Analyse-API mit Google API Client für Python
Holen Sie sich HTML von Element mit Python-Selen
[Hinweis] Mit Python Daten von PostgreSQL abrufen
[Python] Python-Paketinformationen mit der PyPI-API abrufen
Holen Sie sich den Betreff und den Text von Google Mail mit der Python- und Google Mail-API
Holen Sie sich ein Date mit Python
[Python] Ruft den Gesetzestext aus der e-GOV-Gesetz-API ab
Erhalten Sie E-Mails von Google Mail und beschriften Sie sie mit Python3
[Python] Mit der API von Qiita erhalten Sie Benutzer- und Artikelinformationen
Abrufen von Daten aus der Datenbank über ODBC mit Python (Access)
Holen Sie sich den Ländercode mit Python
Verwenden Sie die Trello-API mit Python
Holen Sie sich Twitter-Timeline mit Python
Verwenden Sie die Twitter-API mit Python
Holen Sie sich Youtube-Daten mit Python
Informationen erhalten Sie mit zabbix api
Web-API mit Python + Falcon
Holen Sie sich die Thread-ID mit Python
Beginnen Sie mit Python! ~ ② Grammatik ~
Rufen Sie die API mit python3 auf.
Verwenden Sie die Unterschall-API mit Python3
Holen Sie sich Lager mit Python
Holen Sie sich das Home-Verzeichnis mit Python
Holen Sie sich Tastaturereignis mit Python
Mit Skype benachrichtigen Sie mit Skype von Python!
Verwenden Sie die e-Stat-API von Python
Holen Sie sich Alembic-Informationen mit Python
Holen Sie sich ein Ranking mit Rakuten API
Holen Sie sich Ihre Herzfrequenz von der Fitbit-API in Python!
Nachricht vom ersten Offset mit Kafka Consumer in Python abrufen
Rufen Sie mit BeautifulSoup + Python PowerShell-Befehle von einer Website für dynamische Malware-Analysen ab
Beginnen Sie mit Python! ~ ① Umweltbau ~
Rufen Sie C von Python mit DragonFFI auf
Erstellen Sie Awaitable mit der Python / C-API
Verwenden von Rstan aus Python mit PypeR
Installieren Sie Python von der Quelle mit Ansible
Führen Sie Rotrics DexArm mit der Python-API aus
So erhalten Sie mithilfe der Mastodon-API Follower und Follower von Python
Quine Post mit Qiita API (Python)
Holen Sie sich das Wetter mit Python-Anfragen
Holen Sie sich Web-Screen-Capture mit Python
Holen Sie sich das Wetter mit Python-Anfragen 2
Holen Sie sich mit DataFrame eine Spalte aus DataFrame
[Python] Mit DataReader Wirtschaftsdaten abrufen
Holen Sie sich Daten von VPS MySQL mit Python 3 und SQL Alchemy
Erste Schritte mit Python
Klicken Sie mit Python auf die Etherpad-Lite-API
Führen Sie Aprili von Python auf Orange aus
[Kleine Geschichte] Holen Sie sich mit Python einen Zeitstempel
Verwenden Sie die kabu Station® API von Python
Verwenden Sie die Flickr-API von Python