Java 从Google Plus登录获取访问令牌
我目前正在编写一个googleplus登录应用程序,我一直在努力从google获取访问令牌。我已经阅读了关于获取访问令牌的google plus文档。我不知道该如何实施 下面显示了实现gplus登录的部分代码:Java 从Google Plus登录获取访问令牌,java,android,google-plus,token,Java,Android,Google Plus,Token,我目前正在编写一个googleplus登录应用程序,我一直在努力从google获取访问令牌。我已经阅读了关于获取访问令牌的google plus文档。我不知道该如何实施 下面显示了实现gplus登录的部分代码: public class GplusAction implements LoginInterface,LogoutInterface{ private GoogleApiClient googleApiClient; private GoogleSignInOptions google
public class GplusAction implements LoginInterface,LogoutInterface{
private GoogleApiClient googleApiClient;
private GoogleSignInOptions googleSignInOptions;
private Context context;
private final static int REQ_CODE = 777;
private Intent signInIntent;
private String accountname;
public GplusAction(Context context) {
this.context = context;
googleSignInOptions = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail()
.build();
googleApiClient = new GoogleApiClient.Builder(context)
.addApi(Auth.GOOGLE_SIGN_IN_API, googleSignInOptions)
.build();
}
@Override
public void login() {
signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleApiClient);
startActivityForResult((Activity) context, signInIntent, REQ_CODE, null);
}
@Override
public void logout() {
Auth.GoogleSignInApi.signOut(googleApiClient);
}
@Override
public void get_onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQ_CODE){
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(signInIntent);
}
}
我尝试过使用GoogleAuthUtils,但它似乎已经不推荐使用,如上面链接中所述
下面是我的问题:
-如何使用新方法检索访问令牌
有什么想法吗?要获得身份验证令牌以通过服务器验证,您需要遵循以下步骤 1) 从google控制台为您的应用程序项目获取web应用程序的客户端id 2) 创建
GoogleAppClient
的实例,并在客户端id上方传递GoogleSignionOptions
String serverClientId = getString(R.string.server_oauth_client_id);
GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestIdToken(serverClientId )
.build();
3) 成功登录后,您可以从GoogleSignInResult检索id令牌
GoogleSignInResult result = Auth.GoogleSignInApi.getSignInResultFromIntent(data);
if (result.isSuccess()) {
GoogleSignInAccount acct = result.getSignInAccount();
String idToken = acct.getIdToken();
}
嘿谢谢你的回复。我对您的代码进行了调试,得到:“authCode=null”,这意味着无法检索auth令牌。有什么办法吗?嗨,尤金,我发错代码了,应该是getIdToken()。我重新测试了一下,得到了令牌。请确保在构建GoogleSignations时使用web应用程序客户端id。您好!谢谢你的回复。我也尝试了getIdToken()并得到了一个令牌作为回报。完美的再次感谢你!