获取personFields掩码错误。我被卡住了

时间:2017-11-24 12:30:35

标签: android

如何添加personFields面具?
我的代码和错误在

之下

我的完整代码here

I/onResponse: {
"error": {
    "code": 400,
     "message": "personFields mask is required. Please specify one or more valid paths. Valid paths are documented at https:\/\/developers.google.com\/people\/api\/rest\/v1\/people\/get.", "status": "INVALID_ARGUMENT"
}
}     

3 个答案:

答案 0 :(得分:1)

试试这个

    ListConnectionsResponse connectionsResponse = service
                    .people()
                    .connections()
                    .list("people/me")
                    .set("personFields","names,addresses,birthdays,genders,phoneNumbers,photos")
                    .execute();

答案 1 :(得分:0)

Google People API的回复中已经提到了您的问题的解决方案。

<强> personFields 字符串(FieldMask格式)

必需。用于限制返回此人的字段的字段掩码。有效值为:

  • 地址
  • ageRanges
  • 传记
  • 生日
  • braggingRights
  • coverPhotos
  • emailAddresses
  • 事件
  • 性别
  • imClients
  • 利益
  • 区域设置
  • 成员
  • 元数据
  • 名称
  • 昵称
  • 职业
  • 组织
  • PHONENUMBERS
  • 照片

因此,只需使用密钥&#39; personFields&#39;向RequestBody添加另一个参数。和前一个有效值的值。 https://developers.google.com/people/api/rest/v1/people/get

答案 2 :(得分:0)

好的,我做了一些研究,我发现了一种通过post url传递personFields的方法。我可以获取名称性别和电子邮件地址,但即使在授权访问后我也无法获取电子邮件 有谁知道为什么?

    OkHttpClient client2 = new OkHttpClient();
                final Request request2 = new Request.Builder()
                        .url("https://people.googleapis.com/v1/people/me?personFields=names,genders,emailAddresses,phoneNumbers")
                        .addHeader("Authorization", "Bearer " + accessToken)
                        .build();