一段时间后投递箱自动断开连接

Drop box automatically disconnect after some time

我使用以下代码将我的 android 应用程序与下拉框连接起来。但是,我发现一段时间后它会自动断开连接。我不知道为什么会这样。可能是访问令牌过期或其他任何内容。那么,我怎样才能持续保持连接。请指导我。提前致谢。

public void connect() {
        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(application);
        String accessToken = prefs.getString(Constants.DROPBOX_ACCESS_TOKEN, null);

        if (accessToken == null) {
            accessToken = Auth.getOAuth2Token();
            if (accessToken != null) {
                tracker.send(new HitBuilders.EventBuilder()
                        .setCategory(Analytics.Category.DropBox.name())
                        .setAction(Analytics.Action.Enable.name())
                        .build());

                prefs.edit().putString(Constants.DROPBOX_ACCESS_TOKEN, accessToken).apply();

                try {
                    Bundle bundle = new Bundle();
                    bundle.putString(FirebaseAnalytics.Param.ITEM_CATEGORY, Analytics.Category.DropBox.name());
                    bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, Analytics.Action.Enable.name());

                    FirebaseAnalytics.getInstance(application).logEvent(FirebaseAnalytics.Event.VIEW_ITEM, bundle);
                } catch (Exception e) {
                    e.printStackTrace();
                }

            } else {
                unlink();
            }
        }

        String uid = Auth.getUid();
        String storedUid = prefs.getString(Constants.DROPBOX_USER_ID, null);
        if (uid != null) {
            if (!uid.equals(storedUid)) {
                prefs.edit().putString(Constants.DROPBOX_USER_ID, uid).apply();
            }
        }
    }

Dropbox 正在切换为仅颁发 short-lived 访问令牌(和可选的刷新令牌)而不是 long-lived 访问令牌。你可以找到 more information on this migration here.

应用程序仍然可以通过请求“离线”访问来获得 long-term 访问权限,在这种情况下,应用程序会收到一个“刷新令牌”,可用于根据需要检索新的 short-lived 访问令牌,无需进一步的手动用户干预。您可以在 OAuth Guide and authorization documentation.

中找到更多信息

对于使用官方 Dropbox API v2 Java SDK 的 Android 应用程序,为此,您将使用 startOAuth2PKCE(而不是 startOAuth2Authentication) 作为 shown here, and handle the result as shown here。当您这样做时,凭据将同时包含 short-lived 访问令牌和刷新令牌。只要您将这些凭据传递给客户端,其中包括刷新令牌和访问令牌,SDK 将通过在后台执行刷新自动为您处理过期的 short-lived 访问令牌。