首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Dropbox同步API AccessToken

Dropbox同步API AccessToken
EN

Stack Overflow用户
提问于 2013-11-26 17:51:41
回答 2查看 899关注 0票数 3

当我使用核心API时,我只使用以下代码

代码语言:javascript
复制
[dbsession updateAccessToken:@"..." accessTokenSecret:@"..." forUserId:@"..."];

从应用程序的任何副本访问我的dropbox帐户。但是现在我发现这个新的Sync更简单、更灵活,但是我没有找到与上面显示的代码等价的地方。现在的情况是:

代码语言:javascript
复制
DBAccountManager* accountMgr = [[DBAccountManager alloc] initWithAppKey:@"..." secret:@"..."];
[DBAccountManager setSharedManager:accountMgr];

??[DBAccountManager updateAccessToken:@"..." accessTokenSecret:@"..." forUserId:@"..."];??

我怎样才能进入我的帐户?我可以在哪里插入AccessToken?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-12-06 03:38:10

从您的问题来看,DBAccountManager上的这个方法似乎是使用您的appKeysecret的方法

代码语言:javascript
复制
- (id)initWithAppKey:(NSString *)key secret:(NSString *)secret

从文档描述中可以看出,这种方法“使用应用程序的密钥和机密,...creates是一个新的帐户管理器。您可以注册应用程序,或者在应用程序页面找到您的密钥。”

在创建DBAccountManager实例并将其设置为使用[DBAccountManager setSharedManager:]的共享管理器之后,可以通过调用此方法登录特定用户:

代码语言:javascript
复制
[[DBAccountManager sharedManager] linkFromController:YOUR_ROOT_CONTROLLER];

以下是来自dropbox iOS教程的描述

要开始与同步API交互,您需要创建一个DBAccountManager对象。这个对象允许您链接到Dropbox用户的帐户,这是代表他们处理数据的第一步 “如果安装了...the链接程序,它将切换到Dropbox移动应用程序。一旦用户完成授权步骤,Dropbox将使用设置SDK时注册的URL方案将它们重定向回应用程序。您的应用程序需要处理这些请求才能完成auth流程。”

本教程中提到的最后一步是处理重定向。这里有一些代码可以这样做:

代码语言:javascript
复制
- (BOOL)application:(UIApplication *)app openURL:(NSURL *)url sourceApplication:(NSString *)source annotation:(id)annotation {
    DBAccount *account = [[DBAccountManager sharedManager] handleOpenURL:url];
    if (account) {
        NSLog(@"App linked successfully!");
        return YES;
    }
}

用户的帐户信息现在可以通过[DBAccountManager sharedManager].linkedAccount获得,这是一个具有userIdaccountInfo等属性的DBAccount

这里有一个链接到文档供参考。希望这能有所帮助!

更新

看来我误解了你的问题。我正在向您说明如何使用Sync,并且没有明确说明在中实际上并没有为用户的accessToken提供位置。这已经被我上面描述的web流所取代。

票数 3
EN

Stack Overflow用户

发布于 2014-02-06 00:25:43

您可以通过生成dropbox在同步API中使用的回调url来实现您想要的结果。首先,您需要设置dropbox.sync.nonce用户设置,以匹配作为NSURL中的状态参数传入的任何内容。然后将oauth_token、oauth_token_secret和uid参数设置为您以前传递给[DBAccountManager updateAccessToken:@"..." accessTokenSecret:@"..." forUserId:@"..."];的内容。见下文:

代码语言:javascript
复制
  NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
  [userDefaults setObject:@"9b0aa24b0bd50ce3a1a904db9d309c50"
                   forKey:@"dropbox.sync.nonce"];
  [userDefaults synchronize];

  NSURL *url =
      [NSURL URLWithString:@"db-APP_KEY://1/connect?
oauth_token=updateAccessToken&
oauth_token_secret=accessTokenSecret&
uid=forUserId&
state=9b0aa24b0bd50ce3a1a904db9d309c50"];    

  [[UIApplication sharedApplication] openURL:url];

请注意,状态参数与存储在用户默认值中的值是相同的。请记住,这是无文档化的,可能会在以后的API版本中更改。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20224404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档