Acces aux resource Internet en BASIC

Les dernières nouvelles du front du libre, débats et autres informations générales sur nos suites bureautiques préférées ou sur ce site, en évitant de provoquer toute polémique (troll).
Aucun support assuré ici : posez votre question dans la section appropriée.

Modérateur : Vilains modOOs

psilocybe
Membre hOOnoraire
Membre hOOnoraire
Messages : 135
Inscription : 21 mai 2012 19:40

Acces aux resource Internet en BASIC

Message par psilocybe »

Salut tout le monde,

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 : Ces deux nouvelles interfaces tentent de mimer au plus près celle de l'API Request, notamment pour XRequestResponse qui permet :
  • 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.
L'utilisation est très simple :
  • 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()
Avec cette nouvelle API UNO, je pense que ce sera assez facile pour le OAuth2Service pour proposer une méthode :

Code : Tout sélectionner

pullToCalc(XRequestParameter, ThisComponent, contenttype)
(avec contenttype comme ContentType) permettant d'aspirer des pages Web dans Calc.

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.
LibreOffice 7.3.7.2 - Lubuntu 22.04 - Python 3.10 - Java 11 OpenJDK amd64