Suite à une discussion sur le site éponyme anglais, je vous fais part de ses nouvelles, elles peuvent intéresser ceux qui utilise BASIC.
En fait, pour mes extensions, j'utilise l'API Python Request, l'une des API de requête HTTP les plus faciles à utiliser.
Comme je l'utilise depuis différentes extensions, j'ai finalement réussi à porter l'API Request vers UNO et devrait donc aussi être accessible en BASIC.
Ce portage de l'API Request propose deux nouvelles interfaces sous UNO :
- com.sun.star.rest.XRequestParameter : qui sont les paramètres qui seront utilisés lors de l'exécution de la requête HTTP.
- com.sun.star.rest.XRequestResponse : qui est le résultat de l'exécution de la requête HTTP
- De connaître le statut de la requête HTTP.
- D'accéder au contenu de la requête sous forme de flux binaire au travers d'une interface XEnumeration.
- De gérer les jetons des pages suivantes présents dans les API JSON ou XLM comme celle de Google Drive ou Microsoft Graph, permettant l'exécution de requêtes en boucle.
- Installez l'extension OAuth2OOo
- Créez le service UNO :
Code : Tout sélectionner
session = CreateUnoService("io.github.prrvchr.OAuth2OOo.OAuth2Service")
- Si vous souhaitez utiliser la session d'initialisation OAuth2 (facultatif) :
Code : Tout sélectionner
session.initializeSession(url, adressemail)
- Obtenez un paramètre de requête :
Code : Tout sélectionner
paramètre = session.getRequestParameter("un_nom")
- Définissez au moins une URL et les propriétés NoAuth (la méthode de requête HTTP par défaut est GET) :
Code : Tout sélectionner
paramètre.Url = "https://...."
Code : Tout sélectionner
paramètre.NoAuth = true
- Obtenez la réponse HTTP du paramètre :
Code : Tout sélectionner
response = session.execute(parametre)
- faites ce que vous avez à faire avec votre réponse alors :
Code : Tout sélectionner
response.close()
Code : Tout sélectionner
pullToCalc(XRequestParameter, ThisComponent, contenttype)
Je dois créer une boîte de dialogue pour définir les propriétés de XRequestParameter, ce n'est pas trop compliqué.
La partie Calc consiste à accèder à la bonne cellule et injecter les données. Pour cette partie je manque cruellement de compétences.