Cloudsync pro et Microsoft OneDrive

MAJ qui tombe a pic car j’ai changer mon MDP hier, je modifie sur RCLONE mais j’ai un probléme et cela ne fonctionne pas, je ne comprend pas trop

Merci à @Xav-74 d’avoir commenter sur l’autre post

Par contre j’ai le meme message que Franckybel

Log

[2022-10-26 14:03:50]DEBUG : postSave:: this:cloudsyncpro::__set_state(array(    'id' => '402',    'name' => 'Sauvegarde Jeedom',    'logicalId' => '',    'generic_type' => NULL,    'object_id' => NULL,    'eqType_name' => 'cloudsyncpro',    'isVisible' => '1',    'isEnable' => '1',    'configuration' =>    array (     'createtime' => '2022-10-26 13:56:24',     'comment' => '',     'type' => 'onedrive',     'client_id' => '',     'client_secret' => '',     'cid' => '',     'updatetime' => '2022-10-26 13:56:34',   ),    'timeout' => NULL,    'category' =>    array (     'heating' => '0',     'security' => '0',     'energy' => '0',     'light' => '0',     'opening' => '0',     'automatism' => '0',     'multimedia' => '0',     'default' => '0',   ),    'display' => '{"backGraph::info":0}',    'order' => '9999',    'comment' => NULL,    'tags' => NULL,    '_debug' => false,    '_object' => NULL,    '_needRefreshWidget' => false,    '_timeoutUpdated' => false,    '_batteryUpdated' => false,    '_changed' => false, ))
[2022-10-26 14:03:50]DEBUG : loadConfigFile::
[2022-10-26 14:03:50]DEBUG : loadConfigFile:: rclone.conf:array ( )
[2022-10-26 14:03:51]DEBUG : ajax:: redirectURI:'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?access_type=offline&client_id=&response_type=code&redirect_uri=https:/xxxxxxxxxx/plugins/cloudsyncpro/core/php/CSRedirectURI.php&scope=Files.Read+Files.ReadWrite+Files.Read.All+Files.ReadWrite.All+Sites.Read.All+offline_access&state=eyJ0eXBlIjoib25lZHJpdmUiLCJsb2dpY2azzazOjQwMn0='

1 « J'aime »

Même question : as-tu bien sauvegardé l’équipement avant de faire l’association ?
On voit dans les logs que les champs « client_id », « client_secret » et « cid » ne sont pas renseignés…

Ok, c’est moi qui n’a pas compris le fonctionnement alors,je pensais que lors de l’association, les champs se remplirait

Tu dois les recup sur Azure de microsoft ?

Il faut récupérer ces informations depuis ton compte Azure…

Voici les informations depuis le site rclone :

1 « J'aime »

Et pour éviter de tourner en rond bêtement comme moi, l’identifiant OneDrive n’est pas votre mail mais l’identifiant de votre lecteur OneDrive :wink:
Vous pouvez le trouver en vous connectant à votre OneDrive via un navigateur et dans la barre d’adresse vous devriez avoir un cid=xxxxxxx Copier le xxxxxxx dans le champs du plugin

Merci pour ta réponse, j’avais déja un compte mais pro donc je recommence avec un compte personel mais j’ai un soucis

Merci a XAV car je ne mettais pas ça , par contre j’ai toujours

Nous ne pouvons pas traiter votre demande
invalid_request: The provided value for the input parameter 'redirect_uri' is not valid. The expected value is a URI which matches a redirect URI registered for this client application.

Ce qui bizarre, c’est que je test directement avec rclone et j’arrive plus loin, il m’a bien ouvert la page pour les autorisations mais quand j’ai validé, j’ai pas le tokken, j’ai une erreur :anguished:

Voici quelques captures d’écran que j’avais fourni à @Xav-74

Client secret :

Permissions :

Client ID :

Redirect URI :

Entre temps, j’ai ete au bout avec rclone en mettant la valeur du secret ID lors de la création et non le secret id

Les screens confirme la valeur du secret id (ou je me trompé) et l’url , j’avais pas compris ça dans la doc .

J’ai plus d’erreur mais j’arrive sur une page blanche :grimacing: et rien ne se passe

[2022-10-26 15:33:38]DEBUG : ajax:: redirectURI:'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?access_type=offline&client_id=xxxxxxxxxxxx&response_type=code&redirect_uri=https://xxxxxxxx.eu.jeedom.link/plugins/cloudsyncpro/core/php/CSRedirectURI.php&scope=Files.Read+Files.ReadWrite+Files.Read.All+Files.ReadWrite.All+Sites.Read.All+offline_access&state=xxxxxxxxxx'
[2022-10-26 15:33:39]DEBUG : redirectURI:: QUERY_STRING:'code=xxxxxxxxxxxxxxxxxxx&state=exxxxxxxxxxxxxxxxxxxxxxx'
[2022-10-26 15:33:39]DEBUG : redirectURI:: output:array (   'code' => 'xxxxxxxxxxxxx',   'state' => 'xxxxxxxxxxxxxxxxxxxxx=', )
[2022-10-26 15:33:39]DEBUG : redirectURI:: data:array (   'type' => 'onedrive',   'logicalId' => 402, )
[2022-10-26 15:33:40]DEBUG : redirectURI:: response:GuzzleHttp\Psr7\Response::__set_state(array(    'reasonPhrase' => 'OK',    'statusCode' => 200,    'headers' =>    array (     'Cache-Control' =>      array (       0 => 'no-store, no-cache',     ),     'Pragma' =>      array (       0 => 'no-cache',     ),     'Content-Type' =>      array (       0 => 'application/json; charset=utf-8',     ),     'Expires' =>      array (       0 => '-1',     ),     'Strict-Transport-Security' =>      array (       0 => 'max-age=31536000; includeSubDomains',     ),     'X-Content-Type-Options' =>      array (       0 => 'nosniff',     ),     'P3P' =>      array (       0 => 'CP="DSP CUR OTPi IND OTRi ONL FIN"',     ),     'x-ms-request-id' =>      array (       0 => '3a3fe45a-fbf7-42cb-83b7-746a7d011a01',     ),     'x-ms-ests-server' =>      array (       0 => '2.1.13943.8 - WEULR1 ProdSlices',     ),     'X-XSS-Protection' =>      array (       0 => '0',     ),     'Set-Cookie' =>      array (       0 => 'fpc=Au9Wqvq3yjREp1KfdUR6d3D43qnAAQAAADMu69oOAAAA; expires=Fri, 25-Nov-2022 13:33:40 GMT; path=/; secure; HttpOnly; SameSite=None',       1 => 'x-ms-gateway-slice=estsfd; path=/; secure; samesite=none; httponly',       2 => 'stsservicecookie=estsfd; path=/; secure; samesite=none; httponly',     ),     'Date' =>      array (       0 => 'Wed, 26 Oct 2022 13:33:40 GMT',     ),     'Content-Length' =>      array (       0 => '1746',     ),   ),    'headerNames' =>    array (     'cache-control' => 'Cache-Control',     'pragma' => 'Pragma',     'content-type' => 'Content-Type',     'expires' => 'Expires',     'strict-transport-security' => 'Strict-Transport-Security',     'x-content-type-options' => 'X-Content-Type-Options',     'p3p' => 'P3P',     'x-ms-request-id' => 'x-ms-request-id',     'x-ms-ests-server' => 'x-ms-ests-server',     'x-xss-protection' => 'X-XSS-Protection',     'set-cookie' => 'Set-Cookie',     'date' => 'Date',     'content-length' => 'Content-Length',   ),    'protocol' => '1.1',    'stream' =>    GuzzleHttp\Psr7\Stream::__set_state(array(      'stream' => NULL,      'size' => NULL,      'seekable' => true,      'readable' => true,      'writable' => true,      'uri' => 'php://temp',      'customMetadata' =>      array (     ),   )), ))
[2022-10-26 15:33:40]INFO : redirectURI:: body:array (   'token_type' => 'Bearer',   'scope' => 'Files.Read Files.ReadWrite Files.Read.All Files.ReadWrite.All',   'expires_in' => 3600,   'ext_expires_in' => 3600,   'access_token' => 'xxxxxxxxxxxxxxxxxxxxxxx',   'refresh_token' => 'xxxxxxxxxxxxxxxxxxxxxxxx', )
[2022-10-26 15:33:40]DEBUG : loadConfigFile::
[2022-10-26 15:33:40]DEBUG : loadConfigFile:: rclone.conf:array (   402 =>    array (     'type' => 'onedrive',     'client_id' => 'xxxxxxxxxx',     'client_secret' => 'xxxxxxxxxxxxxxxx',     'token' => '{"access_token":xxxxxxxxxxxxxxx==","token_type":"Bearer","refresh_token":"xxxxxxxxxxxxx","expiry":"2022-10-26T16:29:55+02:00"}',     'drive_id' => 'xxxxxxxxxxxxxxxx',     'drive_type' => 'personal',   ), )
[2022-10-26 15:33:40]DEBUG : saveConfigFile:: array:array (   402 =>    array (     'type' => 'onedrive',     'client_id' => 'xxxxxxxxxxxxxb',     'client_secret' => 'uXf8Q~TB3SuxPrXa~Y~ArSPo9H3-2NFmqX1-ma0L',     'token' => '{"access_token"xxxxxxx==","token_type":"Bearer","refresh_token":"xxxxxxxxxxxx","expiry":"2022-10-26T16:33:40+02:00"}',     'drive_id' => 'xxxxxxxxxxxf',     'drive_type' => 'personal',   ), )
[2022-10-26 15:33:40]DEBUG : saveConfigFile:: content:'[402] type = onedrive client_id =xxxxxxxxxx client_secret = uXf8Q~Txxxxxxxx-ma0L token = {"access_token":"xxxxxx==","token_type":"Bearer","refresh_token":"xxxxxxx","expiry":"2022-10-26T16:33:40+02:00"} drive_id = xxxxxxxxxxxx drive_type = personal  '

PS : J’ai caché les infos perso mais tout est bien rempli

Si page blanche, c’est normalement tout bon surtout au vu des logs que tu as fournis…
Je dois améliorer ce point et être plus visuel :wink:

Ne reste plus qu’a créer une commande sur cet équipement et valider que cela fonctionne.

Voici ce que j’ai dans le LOG en mode debug
J’ai juste changé url de mon Jeedom ainsi que le state (je ne sais pas si cle API :wink:

[2022-10-26 19:09:08][DEBUG] : ajax:: redirectURI:'https://login.microsoftonline.com/common/oauth2/v2.0/authorize?access_type=offline&client_id=Jeedom_Test&response_type=code&redirect_uri=https://jeedom.xxxxxxxxx.ovh/plugins/cloudsyncpro/core/php/CSRedirectURI.php&scope=Files.Read+Files.ReadWrite+Files.Read.All+Files.ReadWrite.All+Sites.Read.All+offline_access&state=eyJxxxxxmUiLCJsb2dpxxxxxxxM0OX0='

J’utilise RCLONE aujourd’hui, je ne me souviens pas avoir du donner ses infos pour valider la connection avec Onedrive.

J’ai relancé une configuration pour tester et je n’ai pas eu besoin de renseigner les infos demandées dans le plugin (tout laissé vide)

J’espère que cela peut aider

Voici ci-dessous les différents steps

pi@raspberrypiSpare:~ $ sudo su
root@raspberrypiSpare:/home/pi# rclone config
Current remotes:

Name                 Type
====                 ====
onedrive             onedrive

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> n

Enter name for new remote.
name> Test

Option Storage.
Type of storage to configure.
Choose a number from below, or type in your own value.
 1 / 1Fichier
   \ (fichier)
 2 / Akamai NetStorage
   \ (netstorage)
 3 / Alias for an existing remote
   \ (alias)
 4 / Amazon Drive
   \ (amazon cloud drive)
 5 / Amazon S3 Compliant Storage Providers including AWS, Alibaba, Ceph, China Mobile, Cloudflare, ArvanCloud, Digital Ocean, Dreamhost, Huawei OBS, IBM COS, IDrive e2, Lyve Cloud, Minio, Netease, RackCorp, Scaleway, SeaweedFS, StackPath, Storj, Tencent COS and Wasabi
   \ (s3)
 6 / Backblaze B2
   \ (b2)
 7 / Better checksums for other remotes
   \ (hasher)
 8 / Box
   \ (box)
 9 / Cache a remote
   \ (cache)
10 / Citrix Sharefile
   \ (sharefile)
11 / Combine several remotes into one
   \ (combine)
12 / Compress a remote
   \ (compress)
13 / Dropbox
   \ (dropbox)
14 / Encrypt/Decrypt a remote
   \ (crypt)
15 / Enterprise File Fabric
   \ (filefabric)
16 / FTP
   \ (ftp)
17 / Google Cloud Storage (this is not Google Drive)
   \ (google cloud storage)
18 / Google Drive
   \ (drive)
19 / Google Photos
   \ (google photos)
20 / HTTP
   \ (http)
21 / Hadoop distributed file system
   \ (hdfs)
22 / HiDrive
   \ (hidrive)
23 / Hubic
   \ (hubic)
24 / In memory object storage system.
   \ (memory)
25 / Internet Archive
   \ (internetarchive)
26 / Jottacloud
   \ (jottacloud)
27 / Koofr, Digi Storage and other Koofr-compatible storage providers
   \ (koofr)
28 / Local Disk
   \ (local)
29 / Mail.ru Cloud
   \ (mailru)
30 / Mega
   \ (mega)
31 / Microsoft Azure Blob Storage
   \ (azureblob)
32 / Microsoft OneDrive
   \ (onedrive)
33 / OpenDrive
   \ (opendrive)
34 / OpenStack Swift (Rackspace Cloud Files, Memset Memstore, OVH)
   \ (swift)
35 / Pcloud
   \ (pcloud)
36 / Put.io
   \ (putio)
37 / QingCloud Object Storage
   \ (qingstor)
38 / SSH/SFTP
   \ (sftp)
39 / Sia Decentralized Cloud
   \ (sia)
40 / Storj Decentralized Cloud Storage
   \ (storj)
41 / Sugarsync
   \ (sugarsync)
42 / Transparently chunk/split large files
   \ (chunker)
43 / Union merges the contents of several upstream fs
   \ (union)
44 / Uptobox
   \ (uptobox)
45 / WebDAV
   \ (webdav)
46 / Yandex Disk
   \ (yandex)
47 / Zoho
   \ (zoho)
48 / premiumize.me
   \ (premiumizeme)
49 / seafile
   \ (seafile)
Storage> 32

Option client_id.
OAuth Client Id.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_id> 

Option client_secret.
OAuth Client Secret.
Leave blank normally.
Enter a value. Press Enter to leave empty.
client_secret> 

Option region.
Choose national cloud region for OneDrive.
Choose a number from below, or type in your own string value.
Press Enter for the default (global).
 1 / Microsoft Cloud Global
   \ (global)
 2 / Microsoft Cloud for US Government
   \ (us)
 3 / Microsoft Cloud Germany
   \ (de)
 4 / Azure and Office 365 operated by 21Vianet in China
   \ (cn)
region> 

Edit advanced config?
y) Yes
n) No (default)
y/n> No
This value must be a single character, one of the following: y, n.
y/n> n

Use auto config?
 * Say Y if not sure
 * Say N if you are working on a remote or headless machine

y) Yes (default)
n) No
y/n> y

2022/10/26 19:23:27 NOTICE: If your browser doesn't open automatically go to the following link: http://127.0.0.1:53682/auth?state=ZwoJ3ZjDc4xAX_Op52_1VA
2022/10/26 19:23:27 NOTICE: Log in and authorize rclone for access
2022/10/26 19:23:27 NOTICE: Waiting for code...

Le site Web ouvert dans chromecast

https://login.microsoftonline.com/common/oauth2/v2.0/authorize?access_type=offline&client_id=b15665d9-eda6-4092-8539-0eec376afd59&redirect_uri=http%3A%2F%2Flocalhost%3A53682%2F&response_type=code&scope=Files.Read+Files.ReadWrite+Files.Read.All+Files.ReadWrite.All+Sites.Read.All+offline_access&state=ZwoJ3ZjDc4xAX_Op52_1VA

Par défaut, rclone utilise une même application pour tous les utilisateurs. Les champs « Client ID » et « Client secret » sont donc partagés par tous les utilisateurs et partagent les mêmes limitations en terme de ressource.

Il est donc préférable (pour ma part) d’avoir sa propre application :wink:

@Francky62 @Franckybel : tout fonctionne après avoir créé une commande ?

Le plus simple est de créer une commande pour récupérer le contenu du stockage (Liste)

Pas pour moi,
J’ai bien sauvegardé l’équipement puis cliqué sur le bouton.
Même message d’erreur dansble browser

Et quel est le message d’erreur ?
Peux-tu me donner accès à ton installation jeedom en MP ?

1 « J'aime »

Je viens de tester et la sauvegarde est bien arrivé sur mon compte onedrive donc tout est ok pour moi, bien joué :wave:

J’ai pas encore réparé mon rclone, je sais pas si je supprime tout et je garde le plugin ou si je garde ma config rclone. J’ai pas trop compris la différence

Peux tu indiquer ta démarche pour que je puisse reprendre depuis le début.
Merci d’avance

A ta disposition pour t’aider mais je pense que la documentation sur le site de rclone pour créer une application ainsi que les captures d’écran que j’ai donné dans un message précédent devrait te permettre de configurer l’équipement.

As-tu bien créer ton application sur le site de Microsoft et récupérer le client ID, client secret et configurer correctement la redirection ainsi que les permissions ?
N’hésites pas à m’envoyer en MP des captures d’écran ou des logs…

Hello @Franckybel,

Voici les étapes à bien faire dans l’ordre :slight_smile:

1. Création de l’app Azure
Bien suivre le tuto ici :

Tu pourras ainsi récupérer le client ID et le secret value (pas secret ID !!)
Et dans la partie URI, tu configures l’adresse externe de ton jeedom comme ceci :
https://jeedom.xxxxxxxxx.ovh/plugins/cloudsyncpro/core/php/CSRedirectURI.php
Tu sauvegardes bien.

2. Récupération de l’identification de ton lecteur
tu peux le trouver en te connectant à ton OneDrive via un navigateur et dans la barre d’adresse tu devrais avoir un cid=xxxxxxx Copie le xxxxxxx

3. Connecte toi à ton jeedom depuis ta connexion externe et pas interne !!
Crée un équipement puis rempli les champs avec les informations recueillies en 1. et 2.
Ensuite tu cliques sur associer le compte. Normalement tu vas devoir donner ton autorisation d’accès. Tu seras en suite redirigé vers une page blanche c’est normal. Tu peux la fermer

4. Création des commandes
Commence par créer une commande « Liste » puis teste la.
Dans les logs, tu dois alors retrouver l’arborescence de ton onedrive

Xav

3 « J'aime »

Ok pour tout le monde si on ferme ce topic ?
Je pense que tout est maintenant fonctionnelle et que le support du stockage OneDrive ne pose pas de problème

1 « J'aime »

Désolé car je devais le faire, mais pour ma part je n’ai vraiment pas eu le temps de tester.
Trop de boulot en ce moment et rarement chez moi.
Dans tous les cas merci à toi pour ce développement et à ceux qui ont pu tester et valider
A+

1 « J'aime »