我使用Google登录API请求用户配置文件,比如用户显示名称、头像照片。我得到了null值GoogleSignInAccount.getPhotoUrl(),得到了值GoogleSignInAccount.getDisplayName().
Gmail帐户可以,但私人帐户不行。私人账户链接到谷歌gmail,它可以在我的gmail账户和谷歌Play商店应用程序中看到图片,谷歌+也是。但为什么我得到空值使用谷歌登录帐户API。
GoogleSignInOptions.Builder builder = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
.requestEmail();
builder.setAccountName(userAcc);
GoogleSignInOptions gso = builder.build();
mGoogleApiClient = new GoogleApiClient.Builder(this)
.enableAutoManage(this, 0, this)
.addApi(Auth.GOOGLE_SIGN_IN_API, gso)
.build();
Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(mGoogleApiClient);
startActivityForResult(signInIntent, RC_SIGN_IN);
private void handleSignInResult(final GoogleSignInResult result) {
if (result.isSuccess()) {
if (getBaseContext() == null) {
return;
}
GoogleSignInAccount acct = result.getSignInAccount();
final String email = acct.getEmail();
final String displayName = acct.getDisplayName();
final Uri uri = acct.getPhotoUrl();
String sUri = null;
if (uri != null) {
sUri = uri.toString();
}
System.out.println("GoogleSignInAccount: getPhotoUrl: " + sUri);
使用https://www.googleapis.com/plus/v1/people/USER_ID?fields=image&key=AIzaSyBz2jGjZl0VGkllxYYKRHPuuAX_oMxdyVQ
,返回包含化身的json