android - 在 Android 上通过一键式登录使用 Google Drive API
问题描述
我在我的 Android 应用程序中实现了 Google 的 One-Tap Sign-Up/In,通过它我SignInCredential
使用oneTapClient.getSignInCredentialFromIntent(result.data)
. 我可以进一步idToken
从这个SignInCredential
对象中获得。
此外,我想使用 Drive API 访问用户的 Google Drive(我已启用 API 并从 API 控制台中选择了所需的范围),我认为这需要我实现 OAuth2 流程,如下所示:
val cred = GoogleAccountCredential.usingOAuth2(this,Collections.singleton(Scopes.DRIVE_FILE))
cred.selectedAccount
val googleDriveService = com.google.api.services.drive.Drive.Builder(AndroidHttp.newCompatibleTransport(), GsonFactory(), cred )
.setApplicationName(getString(R.string.app_name))
.build()
我的问题是如何处理idToken
从 One-Tap 流程获得的信息?我应该以某种方式将它传递给 OAuth2 调用吗?我参考了这个 oauth2 文档和Google API Clients for Java 的这些文档,但它们都没有回答上述问题。如果有的话,我如何进一步“接收”oauth 令牌?
提前谢谢你。
解决方案
推荐阅读
- quasar-framework - 组件中的抽屉在 Quasar 框架中给出警告“避免直接改变道具......”
- docker - CentOS 7 - 无法在 unix:///var/run/docker.sock 连接到 Docker 守护程序。docker 守护进程是否正在运行?
- php - SimpleXMLElement::asXML():内存分配失败:创建输出
- python - Django“登录”页面
- java - 如何在java android中从json中检索数据
- vba - If ElseIf 生成编译错误:Else without If
- powershell - 使用 Powershell 在 Biztalk 中创建发送端口、接收位置和方的最佳方法是什么?
- r - 贝叶斯多元线性模型的 Rstan 代码,逆伽玛作为 sigma 的先验
- c++ - 有条件地将 std::hash 特化为 std::shared_ptr 结构
- python - Python:如果项目等于键,如何将列表项附加到字典?