PC SOFT

PROFESSIONAL NEWSGROUPS
WINDEVWEBDEV and WINDEV Mobile

Home → WINDEV Mobile 2024 → [WM22] Aide HTTPRequête (API Dropbox)
[WM22] Aide HTTPRequête (API Dropbox)
Started by Wahib HASSAINI, Jan., 20 2017 9:27 AM - 6 replies
Posted on January, 20 2017 - 9:27 AM
Bonjour à tous,

Pour mon application Android, je dois faire appel à l'API de Dropbox. L'authentification se fait via OAuth 2.

J'ai trouvé cet exemple : http://doc.pcsoft.fr/fr-FR/?1000022212&product=ER mais les variables de type OAuth2Paramètres ne sont pas disponibles en Android.

Je présume que je dois donc passer par des HttpRequete mais j'ai un peu de mal à saisir la méthode à utiliser pour l'authentification.

Je dois faire un appel sur l'URL : https://www.dropbox.com/oauth2/authorize
Et passer comme paramètres :
response_type String The grant type requested, either token or code.
client_id String The app's key, found in the App Console.

Est-ce que quelqu'un peut m'aiguiller sur la façon d'effectuer ces requêtes?

Merci d'avance,
Wahib Hassaini
Posted on January, 20 2017 - 3:03 PM
Bon j'ai avancé un petit peu, je m'y prenais mal.

Voilà où j'en suis :
wUrlAuth est une chaîne = "https://www.dropbox.com/oauth2/authorize?response_type=token&client_id="+P_AppKey+"&redirect_uri=http://localhost"
LanceAppliAssociée(wUrlAuth)


Ça me lance bien le navigateur de la tablette sur la bonne page, je me connecte à mon compte Dropbox et là j'arrive sur la page : localhost/#access_token=monToken

Y a-t-il un moyen pour que je sois renvoyé sur mon application et que je récupère l'URL pour y trouver le token?
Registered member
45 messages
Popularité : +2 (2 votes)
Posted on January, 24 2017 - 2:52 PM
Bon je crois avoir encore avancer d'un pas mais je me retrouve à nouveau bloqué. En fouinant sur des forums j'ai compris que je devais enregistrer mon scheme personnalisé en éditant le manifeste.

J'enregistre donc mon scheme (Je ne connais pas le nom français j'ai trouvé mes réponses sur StackOverflow) an modifiant le manifeste comme suit :




Sur la page de mon app Dropbox j'ai enregistré l'URI de Callback suivante : "monscheme://connexion".

Mais je ne trouve pas comment faire en sorte que les lien de types "monscheme://..." s'ouvrent dans mon application et que je puisse ensuite récupérer les paramètres qui se trouvent dans l'URL.

Quelqu'un aurait un exemple de la marche à suivre en Windev Mobile?
Registered member
45 messages
Popularité : +2 (2 votes)
Posted on January, 24 2017 - 3:25 PM
Bon j'ai encore fait un pas en avant, j'approche du but :)

Alors vu que dans mon manifeste j'ai indiqué dans intent-filter -> data : android-scheme="monscheme" et android-host="path" l'URI de callback que je devais spécifier était "monscheme://path".

Je fais donc :
wUrlAuth est une chaîne = "https://www.dropbox.com/oauth2/authorize?response_type=token&client_id="+P_AppKey+"&redirect_uri="+P_Redirect_Uri
LanceAppliAssociée(wUrlAuth)


Une page internet s'ouvre et on entre ses identifiants dropbox.
Maintenant, une fois que l'utilisateur clique sur le bouton "Autoriser", c'est bien mon application qui s'ouvre.

Il ne me reste qu'à trouver comment obtenir les informations contenues dans l'uri au retour sur mon application : monscheme://path#access_token=ABCDEFG&token_type=bearer&account_id=12345&uid=12345&state=[STATE]

Si quelqu'un sait comment s'y prendre ça m'intéresse. Si je trouve seul je viendrai poster la réponse ici au cas où quelqu'un a le même soucis un jour.
Registered member
45 messages
Popularité : +2 (2 votes)
Posted on January, 25 2017 - 9:39 AM
J'ai vraiment l'impression de parler tout seul, mais écrire mes problèmes m'aide à réfléchir :D

Alors j'ai trouvé la marche à suivre sous Android pour récupérer les paramètres passés avec l'Uri lorsque mon application s'ouvre via cette uri.

Il faut lire ces informations dans la méthode onCreate.

import android.net.Uri;
import android.content.Intent;
import android.util.Log;

@Override
PROTECTED void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

setContentView(R.layout.main);

// Get the intent that started this activity
Intent intent = getIntent();
Uri Data = intent.getData();

}


Est-ce que quelqu'un sait comment s'y prendre en windev mobile pour faire ça? Merci.
Registered member
1,603 messages
Popularité : +64 (70 votes)
Posted on January, 30 2017 - 8:10 AM
Bonjour Wahib,

Tu n'es pas le seul à réfléchir comment intégrer du code java dans Windev!
J'y ai passé de nombreuses heures en tâtonnements car il n'existe aucune documentation à ma connaissance sur par exemple la méthode que tu indiques.

Faut-il générer ce code dans un fichier .jar puis le charger ?
Et ensuite par quel code en W-langage lancer ces fonctions Java?

la doc "http://doc.pcsoft.fr/fr-FR/?saisir_code_java indique :

"Android Les classes Java utilisées dans le code Java natif doivent être spécifiées dans l'assistant de génération de l'application Android :
étape "Intégration de librairies" pour les classes incluses dans des librairies ".jar" ou ".aar".
étape "Intégration des dépendances Maven" pour les dépendances Maven.
Remarque : Il n'est pas possible de tester ces classes en GO. Il est nécessaire de générer l'application puis de la lancer."

Cordialement
François



Wahib a écrit :
J'ai vraiment l'impression de parler tout seul, mais écrire mes problèmes m'aide à réfléchir

Alors j'ai trouvé la marche à suivre sous Android pour récupérer les paramètres passés avec l'Uri lorsque mon application s'ouvre via cette uri.

Il faut lire ces informations dans la méthode onCreate.


Est-ce que quelqu'un sait comment s'y prendre en windev mobile pour faire ça? Merci.


--
Cordialement
François

http://intra.fr http://intrasoftware.fr
Posted on May, 31 2017 - 4:55 PM
Bonjour Wahib,

je déterre un peu le post car j'ai une problématique similaire, et aurai aimé savoir si une solution a finalement été trouvée.

J'utilise simplement une URI pour ouvrir mon application depuis une autre application, en ayant configurer dans le manifeste un scheme et un host, tout cela marche bien. En revanche, j'aimerai maintenant récupérer l'URI utilisée pour ouvrir mon application, sachant que l'application tierce qui fera appel à mon URI rajoutera des tokens (scheme://host?id=value par exemple). Comment récupérer ces tokens ?

Après de nombreuses heures de recherche, il semble que du code java soit nécessaire, mais je ne comprends pas où placer ce code, et quel code utiliser...

Merci d'avance,
Julien