我有这条消息错误,但我不明白为什么会这样。我重新安装了一个新版本,并使用该代码检查它是否获得了DropBox的授权:
if (([DBClientsManager authorizedClient] && [DBClientsManager authorizedTeamClient]))
它说我没问题,但当我将内容发送到我的Dropbox帐户时,我得到了回复:
ErrorContent = "Error in call to API function \"files/list_folder\": This app is currently disabled.";
RequestId = 51e8ef6340500ad7aacee5ffb32c3489;
StatusCode = 400;
UserMessage = nil;
三天前我授权它获取信息。 但是,如果我再次使用该代码连接到Dropbox:
[DBClientsManager authorizeFromController:[UIApplication sharedApplication]
controller:self
openURL:^(NSURL *url) {
[[UIApplication sharedApplication] openURL:url];
}];
没关系,它有效。
我的问题是,我怎么能真正知道用户是否可以在没有每次询问授权以及令牌过期多久的情况下向其Dropbox帐户发送内容?
可能是令牌无效了吗?可能是他没有被授权,因为时间到期了?
提前致谢。
答案 0 :(得分:0)
authorizedClient
和authorizedTeamClient
属性仅检查您是否在本地存储了访问令牌。它们不表示该访问令牌是否仍然有效。
Dropbox API访问令牌本身不会过期,但由于各种原因,它们可能会失效。例如,用户和应用可以明确撤消令牌。除非您尝试使用API调用,否则您无法确定访问令牌是否仍然有效。例如,您可以通过调用getCurrentAccount
在您的情况下,此访问令牌不再有效,因为它所用的应用程序已被禁用。 (也就是说,开发人员从Dropbox App Console禁用了Dropbox API应用,或者拥有应用本身的帐户已被禁用。)