我已经完成了关于这个主题的几十个答案,按照官方的快速入门指南,完成了我所能想到的一切。
我已经在其所有部分设置了我的Google开发者控制台,包括为OAuth和公共API访问设置正确的调试SHA1密钥(甚至不知道是否有必要)。
我在将范围设置为GoogleApiClient
时遇到问题。
googleClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API)
.addScope(...)
.build();
我可以使用不同的范围组合登录:
.addScope(new Scope("https://www.googleapis.com/auth/plus.login"))
.addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read"))
//WORKS! OR:
.addScope(Plus.SCOPE_PLUS_LOGIN) // == https://www.googleapis.com/auth/plus.login
.addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me
//WORKS! OR:
.addScope(new Scope("https://www.googleapis.com/auth/plus.profile.emails.read"))
//WORKS! OR:
.addScope(Plus.SCOPE_PLUS_PROFILE) // == https://www.googleapis.com/auth/plus.me
//WORKS!
它们都运行良好,我看到它们反映在请求中(即,如果我设置login
+ emails.read
,对话框实际上会要求这两个。)
但是,我只需要" https://www.googleapis.com/auth/plus.login"。如果我只设置.addScope(new Scope("https://www.googleapis.com/auth/plus.login"))
或等同于.addScope(Plus.SCOPE_PLUS_LOGIN)
,我会遇到文档错误Toast错误:
发生内部错误。
所以这个范围(我唯一需要的)与其他人(例如plus.me)一起工作,但并不孤单。为什么这样,我该怎么办?
答案 0 :(得分:0)
您可以通过以下对我有用的代码替换。
mGoogleApiClient = new GoogleApiClient.Builder(this)
.addConnectionCallbacks(this)
.addOnConnectionFailedListener(this)
.addApi(Plus.API, Plus.PlusOptions.builder().build())
.addScope(Plus.SCOPE_PLUS_LOGIN).build();
答案 1 :(得分:0)
mGoogleApiClient = new GoogleApiClient.Builder(this) .addConnectionCallbacks(本) .addOnConnectionFailedListener(本) .addApi(Plus.API,Plus.PlusOptions.builder()。build()) .addScope(Plus.SCOPE_PLUS_LOGIN).build();
使用Plus.SCOPE_PLUS_LOGIN并不是一个好主意,因为' Plus'已被弃用。