Eftersom vissa kanske hellre vill spara sina data på OneDrive så kommer här en artikel på hur man skapar åtkomst till OneDrive från Raspberry PI
Börja med att installera pythonprogrammet Onedrive-cli
1 |
pip install 'python-onedrive[cli]' |
När installationen är färdig kan du testa att den verkligen fungerar med
1 2 3 4 5 6 |
pi@rpi ~ $ onedrive-cli usage: onedrive-cli [-h] [-c path] [-p] [-i] [-k spec] [-e enc] [-V] [--debug] {auth,auth_refresh,quota,user,recent,info,info_set,link,ls,mkdir,get,put,cp,mv,rm,comments,comment_add,comment_delete,tree} ... onedrive-cli: error: too few arguments |
Vi måste nu skapa en applikationslänk till till Ondrive, för att fortsätta måste du ha en Microsoft inloggning, om du inte har ett sådan kan du skapa ett här. Gå till https://account.live.com/developers/applications/create logga in med din microsoft-användare, sedan får du välja vad din applikation ska heta, jag kallade min nimmis-backup
Klicka på Jag accepterar knappen
När du får upp en ny sida, klicka på API-inställningar och se till att för mobil- eller skrivbordsklientapp: ja är iklickad
Tryck på Spara knappen längst ner på sidan, nu kan man få fram de värden som behövs för att få åtkomst till OneDrive. Klicka på Appinställningar och du kommer att se något som liknar detta
Nu kan vi använda informationen från denna sida för att skapa en konfigurationsfil för onedrive-cli. Denna fil skrivs i ett format som heter YAML som har ett väldigt strikt format så för dessa instruktionen om du vill att det ska fungera. Öppna en fil i hemmakatalogen som heter .lcrc OBS! filen börjar med en punkt, mycket viktigt.
1 2 |
pi@rpi ~ $ cd pi@rpi ~ $ nano .lcrc |
Den första raden med cd kommandot kan du göra för att försäkra att du verkligen står på rätt ställe. Använd informationen från websidan för att är de som står på raden id är den sträng som finns under Klient-ID på websidan och Klienthemlighet fyller du i efter secret. Rad 2 och tre ska böja med 2 mellanslag, inga tabbar får användas.
1 2 3 |
client: id: 00000000620A3E4A secret: ABa0eXeLWYLkOPl0QhWIliQcg-MG1SRN |
Nu är vi nästa färdiga, nu ska vi koppa ihop programmet med Onedriven, kör
1 2 3 4 5 6 7 |
pi@rpi ~ $ onedrive-cli auth Visit the following URL in any web browser (firefox, chrome, safari, etc), authorize there, confirm access permissions, and paste URL of an empty page (starting with "https://login.live.com/oauth20_desktop.srf") you will get redirected to in the end. Alternatively, use the returned (after redirects) URL with "/usr/local/bin/onedrive-cli auth <URL>" command. URL to visit: https://login.live.com/oauth20_authorize.srf?scope=wl.skydrive+wl.skydrive_update+wl.offline_access&redirect_uri=https%3A%2F%2Flogin.live.com%2Foauth20_desktop.srf&response_type=code&client_id=00000000620A3E4A |
Klipp ut strängen som börja med https://login.live……. och klistra in den i en webläsare, då ska du få en inloggning till Microsoft
Ange ditt lösenord som är kopplat till Microsoftkontot, du får då ett val att ge applikationen rätt att komma åt lagrad information på OneDrive disken
Klicka på Ja, du får upp en blank sida. Kopiera den länk som står i webläsaren som ser ut ungefär på https://login.live.com/oauth20_desktop.srf?code=3409801234901290293
Klistra in den i Raspberry PIn där det bör står
1 |
URL after last redirect: |
så att de står något liknade
1 |
URL after last redirect: https://login.live.com/oauth20_desktop.srf?code=3409801234901290293 |
och tryck RETURN
Du bör se
1 |
API authorization was completed successfully. |
Som betyder att vi kopplat ihop den med OneDrive, kör onedrive-cli tree för att få en trädvy av de filer och kataloger som finns på OneDrive
1 2 3 4 5 6 |
pi@rpi ~ $ onedrive-cli tree /usr/local/lib/python2.7/dist-packages/requests/packages/urllib3/util/ssl_.py:90: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see https://urllib3.readthedocs.org/en/latest/security.html#insecureplatformwarning. InsecurePlatformWarning SkyDrive: Dokument: hemma: |
Den första raden med varningen har med att python 2.7 har ett gammalt sslbibliotek, jag har just nu inte hittat något bra sätt att fixa det men man kan stänga av varningar.
Öppna onedrive-cli
1 |
sudo nano /usr/local/bin/onedrive-cli |
Programmet se ungefär ut så här
1 2 3 4 5 6 7 8 9 10 |
#!/usr/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'python-onedrive==15.5.4','console_scripts','onedrive-cli' __requires__ = 'python-onedrive==15.5.4' import sys from pkg_resources import load_entry_point if __name__ == '__main__': sys.exit( load_entry_point('python-onedrive==15.5.4', 'console_scripts', 'onedrive-cli')() ) |
Lägg till 2 rader
1 2 |
import warnings warnings.filterwarnings("ignore") |
så att programmet ser ut såhär
1 2 3 4 5 6 7 8 9 10 11 12 13 |
#!/usr/bin/python # EASY-INSTALL-ENTRY-SCRIPT: 'python-onedrive==15.5.4','console_scripts','onedrive-cli' __requires__ = 'python-onedrive==15.5.4' import sys from pkg_resources import load_entry_point import warnings warnings.filterwarnings("ignore") if __name__ == '__main__': sys.exit( load_entry_point('python-onedrive==15.5.4', 'console_scripts', 'onedrive-cli')() ) |
Var noga att inte få några mellanslag i börja av raderna som du lägger till, spara filen
Nu ser det lite bättre ut
1 2 3 4 |
pi@rpi ~ $ onedrive-cli tree SkyDrive: Dokument: hemma: |
onedrive-cli -h visar hjälp på de kommandon som finns tillgängliga
Jag kommer att skriva en artikel där jag modifierar backupskriptet som jag gjorde för dropbox för att köras med onedrive
Recent Comments