如何将OAuth1令牌/密钥对迁移到Dropbox API的OAuth2访问令牌?

时间:2013-11-11 16:05:27

标签: java api oauth dropbox scribe

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

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

3 个答案:

答案 0 :(得分:1)

对于那些绊脚石的人来说,现在的API就在那里:https://www.dropbox.com/developers/core/docs#oa2-from-oa1

答案 1 :(得分: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内执行此操作,否则会抛出异常以在主线程上执行工作。

答案 2 :(得分:0)

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

相关问题