2

如果用户已经为我们的应用程序授权了 OAuth 1(因此我们有一个有效的令牌/秘密对),是否可以获得有效的 OAuth 2.0 访问令牌,而无需用户再次明确地重新授权我们的应用程序?我知道一些 API 支持这一点(例如 Soundcloud,我也认为是 Google),但我在 Dropbox API 文档中没有找到任何与 OAuth 令牌迁移相关的内容。

上下文:我们有一个 Java 应用程序,它使用 Scribe OAuth 库通过 OAuth 1.0a 访问 Dropbox API,并希望迁移到仅支持 OAuth 2 的官方 Dropbox Java API(我们不希望所有用户都拥有重新授权我们)。

4

3 回答 3

1

只是对于偶然发现这一点的人来说,现在有这个 API:https ://www.dropbox.com/developers/core/docs#oa2-from-oa1

于 2014-01-06T10:09:49.917 回答
1

从他们的 Java SDK 中,我像这样使用了他们的Upgrader

DbxOAuth1Upgrader upgrader;
DbxOAuth1AccessToken oAuth1AccessToken;

  try {
      DbxRequestConfig requestConfig = new DbxRequestConfig("Your App", Locale.getDefault().toString());
      DbxAppInfo appInfo = new DbxAppInfo(DROPBOX_APP_KEY, DROPBOX_APP_SECRET);
      upgrader = new DbxOAuth1Upgrader(requestConfig, appInfo);
      oAuth1AccessToken = new DbxOAuth1AccessToken(oauth1AccessKey, oauth1AccessSecret);
      String newToken = upgrader.createOAuth2AccessToken(oAuth1AccessToken);
      upgrader.disableOAuth1AccessToken(oAuth1AccessToken);
      return newToken;
  } catch (Exception e) {
      //deal with it
  }

它因相关性而被剪断,但如果您在 Android 中执行此操作,请确保您在内部执行此操作,AsyncTask否则它会引发在主线程上执行工作的异常。

于 2016-03-13T23:05:35.027 回答
0

另请参阅 Dropbox 论坛上的答案:https ://forums.dropbox.com/topic.php?id=107766 。目前,目前还没有自动化的方式来进行这种迁移。

于 2013-11-11T18:15:31.663 回答