How to setup OneDrive in Ubuntu 17.04?

Problem with OneDrive. Recently I've installed OneDrive in my PC (Ubuntu 17.04) but I'm not able to configure or not able to sign in OneDrive through the terminal. Actually I've strucked here. Please look on to this

jujube@jujube:~$ onedrive
Authorize this app visiting:

https://login.live.com/oauth20_authorize.srf?client_id=000000004C15842F&scope=onedrive.readwrite%20offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf

Enter the response uri: https://login.microsoftonline.com/189de737-c93a-4f5a-8b68-6f4ca9941912/oauth2/authorize?client_id=00000003-0000-0ff1-ce00-000000000000&response_mode=form_post&response_type=code%20id_token&resource=00000003-0000-0ff1-ce00-000000000000&scope=openid&nonce=1263013103B7E6782803F03D5629B7D0FB1A68D46E17D09C-4B1B73911F92DE22FA330783ACEDE04C7C9991BB38BA7FCD9E3A9A900E0DB6AC&redirect_uri=https:%2F%2Fhclo365-my.sharepoint.com%2F_forms%2Fdefault.aspx&state=0&client-request-id=3fc31b9e-70d1-4000-78af-c23eabf4934b
Invalid uri
Could not initialize the OneDrive API
jujube@jujube:~$

I tried installing the package onedrive and it works just fine

sudo apt-get install onedrive

post install, run command

onedrive

This will provide a URI and ask you for a URI in return. Click the URI and login to your onedrive account (this package works only with personal onedrive for now). Good thing is it also works with two factor authentication - no app password is needed.

The URI will show a blank page, copy the web URI and paste it into the terminal where the onedrive command prompted for uri.

That's it. The tool will download entire Onedrive contents to $HOME/OneDrive directory.

The drive can be sync'ed in real time with

onedrive -m

I found the above command useful.

Any time simply run onedrive to sync the files. Use manual to find much more options to configure the sync to your need

man onedrive

I just gone through the following exercise, and OneDrive is partially working for me.

1.install OneDrive package via apt-get

$ sudo apt-get install -y onedrive

2.run onedrive command

$ onedrive Authorize this app visiting:

https://login.live.com/oauth20_authorize.srf?client_id=000000004C15842F&scope=onedrive.readwrite%20offline_access&response_type=code&redirect_uri=https://login.live.com/oauth20_desktop.srf

Enter the response uri:

3.copy and paste the given URL to any browser, then, following the regular Microsft OneDrive procedure. At the end, you get an empty web page.

4.copy the URL and paste it as the response to onedrive command. Here is what I got,

Enter the response uri: https://login.live.com/oauth20_desktop.srf?code=M5f2af202-6d1d-eb70-2007-6077fb7f93f0&lc=1033 Creating directory: ./我的最愛.My Favorites Creating directory: ./Calendar.web Creating directory: ./WallPapers Creating directory: ./Documents Creating directory: ./WallPapers/MacOS . . .

5.You will see $HOME/OneDrive folder been created with OneDrive content.

The reason I said I had a partial success is because the onedrive crashed with following error,

sqlite.SqliteException@src/sqlite.d(147): database is locked ---------------- ??:? [0x6223bf12] ??:? [0x62251a7b] ??:? [0x62250caf] ??:? _D2rt6dmain211_d_run_mainUiPPaPUAAaZiZ6runAllMFZ9__lambda1MFZv [0xb3cc9a0e] ??:? [0x62255cf4] ??:? __libc_start_main [0xb345a3f0] Segmentation fault (core dumped)

Not sure if this is caused by running another onedrive instance while it was already busying sync'ing up the data.

I re-launched a fresh onedrive and it is still sync'ing up (downloading) my data.


There is a new onedrive api and it runs ok in ubuntu 18.10:

https://github.com/xybu/onedrived-dev read and follow the instructions