mel*_*omg 22 android google-signin
我按照以下步骤进行了此链接
我的项目级gradle文件:
dependencies {
classpath 'com.android.tools.build:gradle:1.3.0'
classpath 'com.google.gms:google-services:1.5.0-beta2'
}
Run Code Online (Sandbox Code Playgroud)我的应用级gradle文件:
apply plugin: 'com.android.application'
apply plugin: 'com.google.gms.google-services'
dependencies {
compile fileTree(include: ['*.jar'], dir: 'libs')
compile 'com.google.android.gms:play-services-identity:8.3.0'
compile 'com.google.android.gms:play-services:8.3.0'
compile 'com.google.android.gms:play-services-plus:8.3.0'
compile 'com.google.android.gms:play-services-auth:8.3.0'
...
}
Run Code Online (Sandbox Code Playgroud)我为后端服务器创建了OAuth 2.0客户端ID,并将此客户端ID传递给strings.xml文件.
最后我创建了GoogleSignInOptions和GoogleApiClient对象,如下所示:
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(getString(R.string.server_client_id))
.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this /* FragmentActivity */, this /* OnConnectionFailedListener */)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Run Code Online (Sandbox Code Playgroud)
但问题是result.isSuccess()总是在handleSignInResult函数中返回false.我想也许我在第1步或第2步错误地做某事.我的代码几乎与此SignInActivity.java类似.任何帮助,将不胜感激.
BNK*_*BNK 40
正如我在以下问题中所回答的那样:
为了成功请求Id令牌,您应该使用"Web应用程序"类型的客户端ID,而不是"Android"类型的客户端ID.
您还可以在Google的文档中找到以下信息(请注意#3):
为后端服务器创建OAuth 2.0客户端ID
如果您的应用使用后端服务器进行身份验证或从后端服务器访问Google API,则必须为服务器创建OAuth 2.0客户端ID.要创建OAuth 2.0客户端ID:
- 打开"凭据"页面.
- 单击添加凭据> OAuth 2.0客户端ID.
- 选择Web应用程序.
- 单击"创建"
在创建GoogleSignInOptions对象时,将此客户端ID传递给requestIdToken或 requestServerAuthCode方法.
3月26日更新:
yub*_*del 19
在我的情况下,我以前,
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
Run Code Online (Sandbox Code Playgroud)
我通过添加添加requestToken方法来修复它,
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.requestIdToken(getString(R.string.default_web_client_id))
.build();
Run Code Online (Sandbox Code Playgroud)
现在它为我工作.希望这可以帮助有人像我这样的问题.