android - Android 使用 Google API 设置凭据
问题描述
我想创建一个 Android 应用程序并使用 Google People Api。我遵循了本教程中的所有步骤:https ://developers.google.com/people/v1/getting-started 。
所以我在 Google Api Console 中创建了一个新项目,获取 Web 应用程序的客户端 ID 和客户端密码,设置同意屏幕 oauth。最后我尝试运行可以在上面的链接中看到的谷歌代码,但是在创建“GoogleTokenResponse”时出现异常。
即使我觉得它没有用,我也会发布异常:
Process: simone.biliato.testpeopleapi, PID: 13067
java.lang.RuntimeException: Unable to start activity ComponentInfo{simone.biliato.testpeopleapi/simone.biliato.testpeopleapi.MainActivity}: java.lang.NullPointerException
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:5832)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
Caused by: java.lang.NullPointerException
at com.google.api.client.repackaged.com.google.common.base.Preconditions.checkNotNull(Preconditions.java:770)
at com.google.api.client.util.Preconditions.checkNotNull(Preconditions.java:127)
at com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest.setCode(AuthorizationCodeTokenRequest.java:147)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.setCode(GoogleAuthorizationCodeTokenRequest.java:147)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.setCode(GoogleAuthorizationCodeTokenRequest.java:79)
at com.google.api.client.auth.oauth2.AuthorizationCodeTokenRequest.<init>(AuthorizationCodeTokenRequest.java:103)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.<init>(GoogleAuthorizationCodeTokenRequest.java:111)
at com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest.<init>(GoogleAuthorizationCodeTokenRequest.java:92)
at simone.biliato.testpeopleapi.MainActivity.setUp(MainActivity.java:63)
at simone.biliato.testpeopleapi.MainActivity.onCreate(MainActivity.java:27)
at android.app.Activity.performCreate(Activity.java:6221)
at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
at android.app.ActivityThread.access$900(ActivityThread.java:172)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
at android.os.Handler.dispatchMessage(Handler.java:102)
有没有人有同样的情况?有没有可行的例子?我需要使用“谷歌按钮登录”吗?
解决方案
我认为您可以尝试使用以下示例: https ://github.com/sdivakarrajesh/Google-Drive-Java-API
它适用于 Google Drive Api,但您可以使用代码获得许可,然后更改范围。
推荐阅读
- c++ - 如何在 Clang 中编译带有类的项目?
- python - 熊猫使用上一时期填充行值
- javascript - 替换 content_scripts - WebExtension API 与 Tabs API 的选择
- c# - 将自定义异常从注入的服务抛出到控制器
- angular - 是否可以在模块中使用类方法但不能使用角度和打字稿将其导出到其他模块
- javascript - 将异步函数的结果保存到变量中
- java - 设置弹簧JPA关系的空点异常
- python - 链接列表的分配没有按预期工作
- javascript - 如何生成限制在给定范围内的给定数字的随机倍数?
- laravel - 如何为基于数组的表单输入字段的所有索引转换自定义值以在 Laravel 中进行验证