Eine Frage stellen
Sie haben Fragen? Richten Sie sie an die Dropbox Community!
Der Dropbox-Upload per Python-Script Datei mit demRaspberry Pi über die Schnittstelle API v2 funktioniert plötzlich nicht mehr.
Hat jemand das gleiche Problem ?
Hi, sorry das ich nochmal störe. bekomme aber leider nach gewisser zeit folgende Error message:
Unable to refresh access token without refresh token and app key
Hast du eine Idee was das Problem sein könnte?
Irgendwas ist da schief gelaufen. Am besten, du beginnst noch mal von vorne. Ich gehe davon aus, dass du ein Dropbox-Konto hast. Dann gehe auf die developers-Seite und lösche die aktuelle App. Beginne jetzt von vorn; gehe in die App Console und dann auf "create app". Klicke „Scoped access“ und dann „App folder“ an. Gib der App einen Namen und klicke auf „create app“. Gehe jetzt auf Permissions und erteile unter Files und folders den Schreibzugriff. Jetzt wieder zurück zu Settings. Klicke auf Generated access token. Jetzt erscheint darunter das token als lange Zeichenkette. Kopiere das token auf die Anwendung in deinem Raspi. -
So habe ich es heute nochmals bei mir ausprobiert und es hat funktioniert. Noch ein Tipp: Du kannst die Kommunikation zwischen Raspi und Dropbox auch testen ohne eine Datei hochzuladen. Benutze folgendes script:
#!/usr/bin/python3
db = dropbox.Dropbox(„token“)
print(„Account infos: “, db.users_get_current_account())
Wenn die Kommunikation funktioniert, werden Informationen des Accounts ausgegeben, ansonsten eine Fehlermeldung.
Viel Erfolg
Ja, das heute generierte token beginnt mit "sl". Die 4 Stunden sind noch nicht abgelaufen. Das alte token nutze ich schon seit vielen Jahren. Bin gespannt, was jetzt passiert.
Das habe ich auf youtube gefunden:
"No expiration" wäre dann die Lösung.
Auf meiner Seite wurde diese Möglichkeit aber nicht angezeigt.
Du hast Recht. Mein token lebte nur 4 Studen. Vermutlich wird mein altes token auch irgendwann das gleiche Schicksal teilen. Ich werde die Sache im Auge behalten. Wenn ich näheres herausbekomme melde ich mich in jedem Fall.
Darf ich fragen, ob du dich schon länger mit dem Rasperry pi beschäftigst und welche Projekte du verfolgst?
Also habe meinen Raspberry Pi jetzt seit ca einer Woche, versuche gerade posts von instagram runterzuladen und auf dropbox hoch. Den instagram teil hab ich schon. Aber mache das nur zum spaß.
Hi, ich möchte mich nochmals kurz melden. Zwischenzeitlich habe ich mit verschiedenen scripts versucht, über den den OAuth-App-Autorisierungsablauf standardmäßige Dropbox-API-Zugriffstoken zu erhalten. Dies hat auch wunderbar funktioniert, aber auch hier handelt es sich um kurzlebige Zugriffstoken, die man schon (wie bereits von dir berichtet) an dem Präfik „sl“ erkennt. Nun habe ich begonnen, mich in die OAuth-Dokumentation einzulesen (sehr umfangreich). So wie ich das sehe, lässt sich die Sache nur per OAuth mit Aktualisierungstoken lösen. Um dies zu bewerkstelligen (vor allem, wenn der Aktualisierungsprozess automatisch ablaufen soll) wird man sich wohl tiefer in die Programmiertechnik einarbeiten müssen. Weiter bin ich noch nicht gekommen. Grüße
Hi, ich habe einen Lösungsweg gefunden. Erstelle zunächst eine OAuth-App-Autorisierungs-URL um einen Autorisierungscode zu erhalten. Mit Autorisierungscode, app-key und app-secret startest du dann eine „curl-Eingabe“ Die Antwort ist ein Access-Token und ein Aktualisierungs-Token. Details hat Greg-DB in diesem Forum beschrieben.
Autorisierungs-URL:
curl-Eingabe:
curl https://api.dropbox.com/oauth2/token \
-d code=AUTHORIZATIONCODE \
-d grant_type=authorization_code \
-u APPKEY:APPSECRET
Nun hast du einen Aktualisierungs-Token und kannst ihn in dein script einfügen. Das kann z.B. so aussehen:
import dropbox
db = dropbox.Dropbox(
app_key = <APP_KEY>,
app_secret = <APP_SECRET>,
oauth2_refresh_token = <REFRESH_TOKEN>
Das Aktualisierungs-Token läuft nicht ab. Im Hintergrund werden automatisch neue kurzlebige Zugriffstoken erzeugt. Du musst die ganze Aktion also nur einmal machen.
Quelle:
Ich habe das o.a Prozedere bei mir erfolgreich getestet und denke, dass auch dein Problem so gelöst werden kann..
- Grüße
Hi there!
If you need more help you can view your support options (expected response time for a ticket is 24 hours), or contact us on X or Facebook.
For more info on available support options for your Dropbox plan, see this article.
If you found the answer to your question in this Community thread, please 'like' the post to say thanks and to let us know it was useful!