gpt4 book ai didi

android - 在没有客户经理的情况下在android中使用谷歌客户端API

转载 作者:太空狗 更新时间:2023-10-29 14:28:09 24 4
gpt4 key购买 nike

我目前正在尝试在 android 中编写一个与谷歌任务同步的任务管理器。该应用程序使用谷歌客户端 API 以及 AccountManager 与谷歌服务器进行通信。它在android下工作。但是,我想在 Blackberry playbook 的 android player 下运行它。尽管 .apk 文件转换为黑莓应用程序,但 AccountManager 似乎无法在 playbook android player 下运行,因为它未绑定(bind)到 google 帐户。我发现在没有客户经理的情况下很难与谷歌服务器进行通信。我试过手动向 AccountManager 添加一个帐户,但它也会引发安全异常。我很好奇在给定用户名和密码(以及用于访问的 API key )的情况下是否还有其他方法可以登录谷歌服务?谢谢

最佳答案

AccountManager 和 Google Play 服务都允许您通过 OAuth 2.0 授权流程并在 Android 上获得原生体验(仅适用于 Google API),但只能在 Google 体验设备上使用。 Blackberry Playbook 的 Android Emulator 可能不是 Google Experience 环境。

因此,在这种情况下,最好的方法是使用 WebView 实现 OAuth 2.0 流程。这也是您需要用于非 Google API(Facebook、Microsoft、Salesforce、Dailymotion 等)的技术

基本上,您必须将您的新用户发送到 WebView 中的一个特殊 URL,Google(或其他 OAuth 2 提供商)将要求他们授予您对请求的 API 的访问权限。然后,一旦 Google 授权服务器生成并返回授权代码,您就需要从 URL 或页面内容中提取授权代码。最后一步是将该授权代码交换为刷新和访问 token 。

您需要阅读并理解 OAuth 2.0 授权流程如何适用于已安装的应用程序:https://developers.google.com/accounts/docs/OAuth2#installed

在 Android 上使用 WebView 执行 OAuth 2.0 的分步过程如下:

  • 将用户重定向到嵌入式 WebView 中的授权屏幕 URL
  • 使用 http://localhost 作为重定向 URI
  • 使用 onPageStarted 方法注册 WebViewClient 以拦截页面更改
  • 通过检测重定向到 http://localhost 并从 WebView 的 URL 中读取授权代码来检测授权成功/失败
  • 通过交换 token 的授权码来完成 OAuth 2 流程,并将这些 token 保存在本地数据库中以供进一步使用

您可以在 Onavo's GitHub 上找到执行此操作的开源示例.

关于android - 在没有客户经理的情况下在android中使用谷歌客户端API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9765124/

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