Obtenir le calendrier de l'API Garoon SOAP avec Python + Zeep

mémorandum.

Article précédent

Obtenez des informations utilisateur de l'API Garoon SOAP avec Python + Zeep https://qiita.com/yamashi6/items/d360546eb4ccf2495951

référence

Spécifications communes de l'API Garoon SOAP https://developer.cybozu.io/hc/ja/articles/202228464

Rechercher des rendez-vous https://developer.cybozu.io/hc/ja/articles/202235474

La source

from zeep import Client
from zeep import xsd

client = Client(wsdl='https://(Nom du sous-domaine).cybozu.com/g/index.csp?WSDL')

#Vous ne pouvez pas utiliser l'acquisition programmée sauf si vous liez
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", 
        #Changer les utilisateurs et les mots de passe
        Security={'UsernameToken':{'Username':'','Password':''}}, 
        Timestamp={'Created':'2010-08-12T14:45:00Z','Expires':'2037-08-12T14:45:00Z'},
        Locale="jp")

#Cette façon d'écrire est également OK
# 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)

#Cette façon d'écrire est également OK
# 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])
    #Retourné dans la liste
    print(response)

except:
    import traceback
    traceback.print_exc()

Résultat d'exécution

Retourné dans la liste

[{
    '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': 'Réunion',
    '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

Obtenir le calendrier de l'API Garoon SOAP avec Python + Zeep
Gérer l'API SOAP depuis Python (Zeep)
Obtenez des avis avec l'API googlemap de python
python Obtenez la météo à venir de l'API météo
Obtenez des données de l'API d'analyse avec le client API Google pour python
Obtenir le code HTML de l'élément avec du sélénium Python
[Note] Obtenir des données de PostgreSQL avec Python
[Python] Obtenez des informations sur le package Python avec l'API PyPI
Obtenez l'objet et le corps de Gmail avec Python et l'API Gmail
Obtenez date avec python
[Python] Récupérez le texte de la loi à partir de l'API e-GOV law
Recevoir des e-mails de Gmail et étiqueter avec Python3
[Python] Obtenez des informations sur les utilisateurs et des articles sur l'API de Qiita
Obtenir des données de la base de données via ODBC avec Python (Access)
Obtenez le code du pays avec python
Utiliser l'API Trello avec python
Obtenez la chronologie Twitter avec Python
Utiliser l'API Twitter avec Python
Obtenez des données Youtube avec python
Obtenir des informations avec l'API Zabbix
API Web avec Python + Falcon
Obtenir l'ID de thread avec python
Commencez avec Python! ~ ② Grammaire ~
Appelez l'API avec python3.
Utiliser l'API subsonique avec python3
Obtenez des stocks avec Python
Obtenir le répertoire personnel avec python
Obtenir un événement de clavier avec python
Avec skype, notifiez avec skype de python!
Utilisez l'API e-Stat de Python
Obtenez des informations sur l'alambic avec Python
Obtenez un classement avec l'API Rakuten
Obtenez votre fréquence cardiaque à partir de l'API fitbit en Python!
Obtenir le message du premier offset avec le consommateur kafka en python
Obtenez des commandes PowerShell à partir d'un site d'analyse dynamique de logiciels malveillants avec BeautifulSoup + Python
Commencez avec Python! ~ ① Construction de l'environnement ~
Appeler C depuis Python avec DragonFFI
Créer Awaitable avec l'API Python / C
Utilisation de Rstan de Python avec PypeR
Installez Python à partir des sources avec Ansible
Exécutez Rotrics DexArm avec l'API Python
Comment obtenir des abonnés et des abonnés de Python à l'aide de l'API Mastodon
Quine Post avec l'API Qiita (Python)
Obtenez la météo avec les requêtes Python
Obtenez une capture d'écran Web avec python
Obtenez la météo avec les requêtes Python 2
Obtenir une colonne de DataFrame avec DataFrame
[Python] Obtenez des données économiques avec DataReader
Obtenez des données de VPS MySQL avec Python 3 et SQL Alchemy
Comment démarrer avec Python
Accédez à l'API Etherpad-lite avec Python
Exécutez Aprili depuis Python sur Orange
[Petite histoire] Obtenez l'horodatage avec Python
Utilisez l'API kabu Station® de Python
Utilisez l'API Flickr de Python