Google+ API 在 Android 上到底是怎么回事?

What the heck with Google+ API on Android?

我尝试使用已弃用的 Plus.API 获取我的生日日期。我请求范围:Plus.SCOPE_PLUS_PROFILEPlus.SCOPE_PLUS_LOGINScope("https://www.googleapis.com/auth/user.birthday.read")

我什至收到了来自 Google 的对话,另外,该应用程序要求完整的生日日期。但是即使它在 mu G+ 页面上是 pblic,我也得到了 null birthady 的回复?

代码:

public static final Scope SCOPE_PLUS_BIRTHDAY = new Scope("https://www.googleapis.com/auth/user.birthday.read");

    GoogleSignInOptions gso = new GoogleSignInOptions
            .Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
            .requestEmail()
            .requestId()
            .requestProfile()
            .requestScopes(SCOPE_PLUS_BIRTHDAY, Plus.SCOPE_PLUS_PROFILE, Plus.SCOPE_PLUS_LOGIN)
            .build();

    mGoogleApiClient = new GoogleApiClient.Builder(mActivity)
            .enableAutoManage(mActivity, this)
            .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
            .addApi(Plus.API)
            .build();

回复:

[{value='antoxa2584@gmail.com', key='email', parentId=null}, {value='Антон Артемов', key='name', parentId=null}, {value='https://plus.google.com/100328752299073028996', key='url', parentId=null}, {value='https://lh4.googleusercontent.com/-WNQOIPjFjtY/AAAAAAAAAAI/AAAAAAAAP7E/LjtF7njMedE/photo.jpg?sz=50', key='photo_url', parentId=null}, {value='0', key='age_range_max', parentId=null}, {value='21', key='age_range_min', parentId=null}, {value='null', key='about_me', parentId=null}, {value='null', key='birthday', parentId=null}, {value='null', key='location', parentId=null}, {value='male', key='gender', parentId=null}, {value='ru', key='language', parentId=null}, {value='null', key='nick_name', parentId=null}, {value='0', key='relat_status', parentId=null}]

如果不将生日设置为 public,则无法检索生日。我也不相信用户的出生年份会被返回。您可以使用年龄范围来验证用户的年龄,并可以使用他们的生日(如果他们 public)在他们生日那天进行社交活动。

将个人资料设置为 public 后尝试 using the API Explorer to test this