【问题标题】:iOS Authorize Dropbox without opening Dropbox appiOS 授权 Dropbox 无需打开 Dropbox 应用
【发布时间】:2013-02-27 17:37:15
【问题描述】:

如果安装了 Dropbox 应用,有没有办法在 iOS 授权 Dropbox 的情况下不打开它。只需打开 Dropbox 网页视图。您可以为 facebook 身份验证执行此操作,我希望有一个选项可以设置为不打开 Dropbox 应用程序。

我找到了 auth api 逻辑 https://www.dropbox.com/developers/core/api#authorize

不确定如何在 iOS 上实现它。

谢谢,

【问题讨论】:

  • 您能否澄清一下 - 问题是您不知道如何将经过身份验证的会话“移交”给 web 视图,或者您不知道如何验证用户身份outside webview 放在首位?
  • 问题是如果用户安装了保管箱应用程序,我不想要“[[DBSession sharedSession] linkFromController:self];”打开保管箱应用程序。我希望身份验证使用 webview。
  • @TimWalsh,你有没有找到合理的方法来做到这一点?
  • 我把它放在次要位置,但看起来 API 将允许您编写自己的登录页面。我最终会这样做,而不是添加另一个像 Temboo 这样的 3rd 方库。

标签: ios ios6 dropbox dropbox-api


【解决方案1】:

我可以通过检查是否安装了投递箱并据此更改呼叫来解决此问题。

    NSURL *dropboxUrl = [NSURL URLWithString:@"dbapi-1://"];
    if ([[UIApplication sharedApplication] canOpenURL:dropboxUrl]) {
        [[DBSession sharedSession] linkUserId:@"" fromController:vc];
    }else{
        [[DBSession sharedSession] linkFromController:vc];
    }

如果用户安装了 Dropbox,那么它将打开 safari 并以这种方式验证用户。

不是最干净的解决方案,而是最好的解决方案,无需添加任何更多的 3rd 方库。

【讨论】:

  • 太好了,非常感谢蒂姆。我也会继续使用您的解决方案。
【解决方案2】:

我在上面的 cmets 中问了一个问题,您的回答可能会或可能不会使这个答案无效,但您可以使用:您可以利用 Dropbox 自己的 iOS SDK 来验证当前用户。这可能比使用/authentication REST 端点更可取。

另一个很可能让生活更轻松的选择是使用 Temboo 的iOS SDK(完全披露:我为 Temboo 工作)。它允许您在 iOS 应用程序中非常轻松地使用 Dropbox's API,并且您的 Temboo 帐户工具还可以处理很多关于 OAuth、凭据等的繁重工作。Temboo SDK 也可以与 100+ other APIs 通信,一旦你实现了一个与其他 API 的集成是一件轻而易举的事。

干杯

【讨论】:

    猜你喜欢
    • 2019-05-29
    • 1970-01-01
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多