Страница 1 из 1

dropbox и curl

Добавлено: 07 сен 2022, 13:50
demonlibra
Для получения доступа к функционалу dropbox через curl:
  1. Откройте в браузере страницу https://www.dropbox.com/developers/apps
  2. Выберите "Create app"
  3. Выберите "Scoped access"
  4. Выберите "App folder"
  5. Задайте "Name your app"
  6. Задайте права во вкладке "Permissions"
    • files.metadata.write
    • files.content.write
    • sharing.write
    • file_requests.write
  7. Ранее было достаточно сгенерировать ключ access token (OAuth 2 -> Generated access token -> Generate).
    С некоторых пор ключ access token действует несколько часов.
    Для получения действующего ключа access token можно использовать ключ refresh_token, который действует бессрочно.
       
  8. Скопируйте App key
    2022-09-07_13-35.png
  9. Подставьте App_key в адрес и откройте в браузере ссылку:

    Код: Выделить всё

    https://www.dropbox.com/oauth2/authorize?client_id=App_key&response_type=code&token_access_type=offline
  10. Получите код
  11. Подставьте код, App_key, App_secret и выполните в терминале:

    Код: Выделить всё

    code=''
    app_key=''
    app_secret=''
    curl https://api.dropbox.com/oauth2/token -d code=$code -d grant_type=authorization_code -u $app_key:$app_secret
    
    Из вывода необходимо скопировать refresh_token. Этот ключ действует бессрочно и позволяет генерировать ключ access_token.
  12. Следующий код можно использовать для автоматизации получения действующего access_token.
    Подставьте refresh_token, app_key и app_secret.

    Код: Выделить всё

    refresh_token=''
    app_key=''
    app_secret=''
    access_token=`curl https://api.dropbox.com/oauth2/token \
    	-d refresh_token=$refresh_token \
    	-d grant_type=refresh_token \
    	-d client_id=$app_key \
    	-d client_secret=$app_secret | grep -Po 'sl.*' | sed -r 's/\".+//'`
    
Полученный access_token можно использовать для загрузки файлов и получения ссылок при помощи curl
Контекстное меню ФМ nemo (тема от demonlibra)

Источники информации:
https://riptutorial.com/dropbox-api/exa ... using-curl
https://riptutorial.com/dropbox-api/top ... -or-folder
https://riptutorial.com/dropbox-api/exa ... using-curl
https://www.dropboxforum.com/t5/Dropbox ... d-p/596739