DropBox SDK 由于 "invalid_access_token" 而失败

DropBox SDK failing due to "invalid_access_token"

我正在为我的 C#.net 桌面应用程序使用 Dropbox.API Nuget(最新版本 6.26.0)。 我通过使用 client_id:

请求授权来获取 DropBox 访问令牌
var requestUrl = $"https://www.dropbox.com/oauth2/authorize?client_id={_appKey}&response_type=code";

我在没有 redirect_url 的情况下调用它,因此它向我显示了一个带有访问令牌的网页。这是我用于其他 SDK API 调用的访问令牌。

我从中得到的响应包括一个 URL,它允许我确认并批准身份验证请求,然后它会向我提供一个访问令牌字符串。

然后我获取该访问令牌并使用它来初始化 DropboxClient。

var client = new DropboxClient(AccessToken)

其中AccessToken确实是访问令牌字符串(已确认)。

现在很奇怪,我在尝试创建 DropboxClient 实例时收到无效访问令牌异常。

问题: 好像我错过了就在我眼皮底下的东西。我是什么 做错了吗?

请注意,有一个线程,https://github.com/dropbox/dropbox-sdk-java/issues/113,但它导致死胡同。

另请注意,几天前我的这个工作还不错。现在突然间它不起作用了。我按照以下文档让它工作:https://developers.dropbox.com/oauth-guide.

我找到了答案。我将其归咎于 DropBox 糟糕的文档。 基本上,我一直在使用的“访问令牌”实际上是“授权令牌”,这是我需要用来获取实际访问令牌的东西(通过https://api.dropboxapi.com/oauth2/token)。

对我有用的解决方案:

  1. 打电话给https://www.dropbox.com/oauth2/authorize
  2. 打开第 1 步的响应提供的 URL。
  3. 复制第 2 步 URL 提供的 AUTH TOKEN。
  4. 使用从第 3 步复制的授权令牌调用 https://api.dropboxapi.com/oauth2/token 来获取访问令牌。
  5. 使用 DropBox SDK 调用 DropBox API 并传入从第 4 步获得的访问令牌。