L'API de calendrier est nouvelle dans LINE WORKS v2.7. J'aimerais vraiment l'utiliser lors de l'introduction des changements.
Actuellement, il existe deux API de calendrier principales.
Il existe deux principaux types d'API LINE WORKS: les API de serveur et les API de service.
Type d'API | Fonctionnalité |
---|---|
API serveur | API qui fonctionne avec les privilèges système, aucune connexion utilisateur requise |
API de service | API qui fonctionne avec l'autorité de chaque utilisateur, la connexion de l'utilisateur est requise dans l'interface utilisateur Web lors de l'utilisation |
Jusqu'à présent, l'API de calendrier était fournie uniquement en tant qu'API de service. Par conséquent, il n'était possible de gérer votre propre calendrier qu'avec votre propre autorité.
Parallèlement à la mise à jour v2.7, une nouvelle API serveur a été ajoutée et peut être utilisée pour la copie de données pendant la migration. Cependant, pour le moment, les fonctions fournies sont limitées.
--Créer / supprimer un calendrier --Créer / modifier / supprimer un rendez-vous
--Enquête / correction des informations du calendrier --Enquête sur la liste des calendriers
De cette manière, vous pouvez utiliser «créer un nouveau calendrier et le lancer», mais «référencer les informations existantes» continuera à être limité à l'API de service.
En utilisant la nouvelle API, enregistrons un calendrier et ajoutons un rendez-vous. Ce qui suit utilise Python 3.8.0.
Cliquez ici pour une explication de l'API. Créer un calendrier
calendarlist.py
import json
import requests
import urllib.parse
APIID="ID d'API obtenu à partir de la Developer Console"
SERVER_CKEY = "Clé client du serveur obtenue à partir de la Developer Console"
SERVER_TOKEN = "Jeton d'authentification du serveur"
def CalendarlistS(ServerTOKEN,AccountId,**CalParams):
#Créer une URL de requête
apiurl = 'https://apis.worksmobile.com/r/'+ APIID + 'calendarList/'+ urllib.parse.quote(AccountId) + '/calendarList'
header = {
'consumerKey': SERVER_CKEY,
'Authorization': 'Bearer ' + SERVER_TOKEN,
'Content-Type': 'application/json'
}
#Passer CalParams comme paramètre de calendrier
r = requests.post(apiurl, headers = header, json = CalParams)
return r
#Exemple de création
cal=CalendarlistS(SERVER_TOKEN,'demo@exampletenant',name='demo calendar',description='hogehoge')
#L'ID de calendrier créé entre dans returnValue
Cal_ID = cal.json()['returnValue']
Notez que de nombreuses autres API utilisent la valeur externalKey pour spécifier les membres, mais le accountId de l'API de calendrier est au format ID @ domaine.
Ensuite, enregistrez le rendez-vous dans le calendrier créé.
calendarlist.py
def CalendareventS(ServerTOKEN,AccountId,CalendarId,**EventParams):
#Créer une URL de requête
apiurl = 'https://apis.worksmobile.com/r/'+ APIID + '/calendar/v1/' + urllib.parse.quote(AccountId) + '/calendars/'+CalendarId+'/events'
header = {
'consumerKey': SERVER_CKEY,
'Authorization': 'Bearer ' + ServerTOKEN,
'Content-Type': 'application/json'
}
#Passer EventParams comme information de rendez-vous
r = requests.post(apiurl, headers = header, json = EventParams)
return r
Les paramètres de rendez-vous sont spécifiés au format ical. Veuillez consulter ici pour savoir comment écrire.
demo.ics
BEGIN:VCALENDAR
VERSION:2.0
PRODID:NO Calendar
CALSCALE:GREGORIAN
BEGIN:VTIMEZONE
TZID:Asia/Tokyo
BEGIN:STANDARD
DTSTART:19700101T000000
TZNAME:GMT+09:00
TZOFFSETFROM:+0900
TZOFFSETTO:+0900
END:STANDARD
END:VTIMEZONE
BEGIN:VEVENT
SEQUENCE:0
CLASS:PUBLIC
TRANSP:OPAQUE
UID:demodemodemo-001-001
DTSTART;TZID=Asia/Tokyo:20191212T150000
DTEND;TZID=Asia/Tokyo:20191212T160000
SUMMARY:Exemple de calendrier
DESCRIPTION:Explication détaillée
LOCATION:Bureau de Tokyo
ORGANIZER;CN=Yamada Taro:mailto:[email protected]
ATTENDEE;ROLE=REQ-PARTICIPANT;PARTSTAT=NEEDS-ACTION;CN=Participants:mailto:[email protected]
CREATED:20191212T015408Z
LAST-MODIFIED:20191212T015408Z
DTSTAMP:20191212T015409Z
END:VEVENT
END:VCALENDAR
Vous devez enregistrer les rendez-vous un par un. Je pense que le fichier ics exporté depuis l'application de calendrier contient plusieurs rendez-vous (VEVENT), mais sachez que si vous essayez de l'importer tel quel, une erreur se produira. C'est ainsi que vous enregistrez vos rendez-vous dans le calendrier que vous avez créé en premier.
python
f=open('demo.ics')
eventdata=f.read()
f.close()
event=CalendareventS(SERVER_TOKEN,'demo@exampletenant',Cal_ID,ical=eventdata)
Il y a un problème car il ne peut pas être enregistré dans le calendrier de base personnel et ce n'est que dans une direction car il n'y a pas de référence, mais il semble qu'il puisse être commodément utilisé pour verser des horaires à partir d'autres systèmes.
Recommended Posts