缺少范围错误 Dropbox API 身份验证?

use*_*094 4 python scope dropbox-api

我正在尝试使用以下脚本将带有一堆子文件夹的大型 Dropbox 文件夹下载到外部硬盘驱动器:http : //tilburgsciencehub.com/examples/dropbox/

import dropbox
from get_dropbox import get_folders, get_files
from dropbox.exceptions import ApiError, AuthError


# read access token
access_token = "sl.superlongstring"
 

print('Authenticating with Dropbox...')
try:
    dbx = dropbox.Dropbox(access_token, scope=['files.content.read', 'files.metadata.read'])
    print('...authenticated with Dropbox owned by ' + dbx.users_get_current_account().name.display_name)
except AuthError as err:
    print(err)
Run Code Online (Sandbox Code Playgroud)

这里没有错误,正确显示我的名字。

try:
    folders=get_folders(dbx, '/Audioboeken')
    print(folders)
    download_dir = r'L:\\00 Audioboeken'
    print('Obtaining list of files in target directory...')
    get_files(dbx, folder_id, download_dir)
except ApiError as err:
    print(err)
except AuthError as autherr:
    print(autherr)
Run Code Online (Sandbox Code Playgroud)

这个错误:

dropbox.exceptions.AuthError: AuthError('randomstringofnumbers, AuthError('missing_scope', TokenScopeError(required_scope='files.metadata.read')))

我试过为登录请求添加范围,但这似乎没有帮助..(不确定我是否正确)

应用程序权限:选中 files.content.read 和 files.metadata.read 复选框。

Gre*_*reg 12

“missing_scope”错误表示虽然允许应用使用该范围,但您用于进行 API 调用的特定访问令牌并未授予该范围。通过应用控制台向您的应用添加范围不会追溯授予现有访问令牌的范围。

在这种情况下,要进行需要该范围的任何 API 调用,您需要获取具有该范围的新访问令牌。

  • 谢谢!这确实是问题所在 - 我在设置权限之前生成了访问令牌。非常愚蠢的是,不清楚当你改变它时它不具有追溯力。 (2认同)