gpt4 book ai didi

java - 使用之前生成的 token 在 Android 应用程序中进行 Dropbox 身份验证

转载 作者:行者123 更新时间:2023-12-01 13:39:57 24 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,真的只是为了我自己,学习 Android 并为自己做一些有用的东西。该应用程序是我编写的桌面应用程序的扩展。桌面应用程序所做的事情之一是将一些文本数据和图像上传到我为此目的创建的 Dropbox 帐户。

Android 应用程序提供了桌面应用程序的简化实现,以便我可以随时随地获得一些相同的功能。因此,当 Android 应用程序启动时,它会检查 Dropbox 帐户并下载尚未拥有的任何新数据。

对于桌面应用程序(Python),我只是通过使用我的 dropbox 应用程序 key (在浏览器中)点击 dropbox 身份验证端点来手动进行身份验证,然后使用从中获得的“代码”最终获得访问 token 。因此,我将该 token 硬编码到我的桌面应用程序中,它绕过了 oAuth 流程,仅使用该 token 进行身份验证。上传数据就好了。

虽然 Python Dropbox API 允许我做到这一点,但我不确定如何使用 android dropbox API 做到这一点。我一直在浏览 JavaDocs 中的类 API ,但似乎我必须通过 oAuth 过程来获取 AccessTokenPair 进行身份验证(它似乎由 key 和 secret 组成)。我是否可以只向某个对象(可能是 DropboxAPI 实例)提供在桌面应用程序中使用的相同 token 来进行身份验证?

我现在意识到 Dropbox 的这种用法可能不是很直观,但我现在已经投入了,所以如果可以的话,我希望让它发挥作用。

编辑:
如果您从之前的身份验证 session 中保存了 AccessTokenPair(或其值),那么您似乎可以避免执行 oAuth 过程。看起来 AccessTokenPair 只是两个字符串的包装: key 和 secret 。所以我想我现在的问题是,这两个值是什么?我有一个访问 token ,它是一个约 64 个字符的字符串,我的桌面应用程序已成功使用它进行身份验证。我可以使用它来创建 AccessTokenPair 对象吗?如果可以的话,它是 key 还是 secret 以及我缺少什么?

解决方案:
正如 Smarx 所说,问题在于 AndroidiOS Dropbox 客户端使用 oAuth1,而 PythonRubyPHPJava 客户端使用 oAuth2。因此,我实际上最终只是遵循 Android 的 oAuth1 流程,记录生成的访问 key 和 secret ,然后对它们进行硬编码以供将来使用以绕过 oAuth 流程。看起来运行良好。

最佳答案

您使用的是 Core API 还是 Sync API?

就 Sync API 而言,我认为没有简单的方法来使用您已有的 token 。

对于 Core API,我认为您可以做到,但我相信 Android Core SDK 仍然使用 OAuth 1,并且我的猜测是您有一个 OAuth 2 token 。

关于java - 使用之前生成的 token 在 Android 应用程序中进行 Dropbox 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20914383/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com