Google api 为什么可以';我不能用Google People API检索电子邮件地址和电话号码吗?

Google api 为什么可以';我不能用Google People API检索电子邮件地址和电话号码吗?,google-api,google-people,Google Api,Google People,我想使用检索我的联系人姓名、电子邮件地址和电话号码,我正在使用他们的工具测试API 正在检索姓名,但不检索电子邮件地址和电话号码。我想我做的每件事都是对的。我已使用正确的作用域和选定的字段进行了正确的身份验证。 我做错什么了吗?或者这是谷歌方面的一个问题?我找到了一个解决方案。根据Google People API文档,省略此字段将包括所有字段,但这不会发生。在我的例子中,将RequestMask字段设置为person.names、person.emailAddresses、person.ph

我想使用检索我的联系人姓名、电子邮件地址和电话号码,我正在使用他们的工具测试API

正在检索姓名,但不检索电子邮件地址和电话号码。我想我做的每件事都是对的。我已使用正确的作用域和选定的字段进行了正确的身份验证。


我做错什么了吗?或者这是谷歌方面的一个问题?

我找到了一个解决方案。根据Google People API文档,省略此字段将包括所有字段,但这不会发生。在我的例子中,将
RequestMask
字段设置为
person.names、person.emailAddresses、person.phoneNumbers
是有效的。

您必须使用people.connections.list来获取联系人列表,然后循环访问联系人并使用people.get来获取每个联系人。在我的例子中,我将pageSize设置为50,然后使用(一次最多支持50个资源名称)获取这50个联系人的详细信息。

一旦您将credentials对象保存在某个位置。您可以使用以下代码检索电话号码和其他详细信息。您只需设置RequestMask

#获取凭据
cred_obj=OAuth2Credentials.new_from_json(凭证)
http=httplib2.http()
#创建服务
人员\服务=构建(serviceName='people',version='v1',http=cred\u obj.authorize(http))
results=people\u service.people().connections().list(resourceName='people/me',
requestMask_includeField='person.names,person.EmailAddresss,person.PhoneNumber',
页面大小=160)
res=results.execute()
connections=res.get('connections',[])
有关人士:
names=person.get('names',[])
phone_numbers=person.get('phoneNumbers',[])
如果len(名称)>0:
name=名称[0]。获取('displayName')
如果len(电话号码)>0:
电话号码=电话号码[0]。获取('value'))

打印姓名、电话号码,我只是想说清楚-因为对我来说真的不是-如果你自己构造
GET
请求,请求掩码的查询参数是
requestMask.includeField
。嵌套的JSON被展平为键路径。因此,完整的连接列表
GET
请求如下:


只有在用户将电话号码和其他详细信息添加到谷歌个人资料中时,才会获取这些信息

如果您使用的是“resourceName=people/me”工具,则:

  • 您应该使用您的Google帐户登录,然后
  • 同意允许google API explorer工具访问登录用户(在本例中为您)的个人资料详细信息 在您同意后,它将能够获取登录用户的“电话号码”和“地址”

    如果要访问其他用户的配置文件或从任何其他源调用API,则:

  • 用户必须授予您的应用程序/网站/程序访问其个人资料中请求的信息的权限

  • 您必须在GET请求头中包含值为“Bearer(目标用户的OAuth accesstoken)”的“authorization”密钥,才能从目标用户的配置文件中获取个人详细信息


  • OAuth accesstoken可以直接从用户同意响应或通过将refreshtoken交换为accesstoken来获得

    连接是否必须“启用”共享这些详细信息?使用Google+的移动应用程序或网站通常需要提示其他信息。您不需要在请求url中传递访问令牌吗?非常好。谢谢你让我不再把头撞到墙上,你用这个救了我!非常感谢。这是给我的森林惠特克眼睛。谢谢。嘿,我一直在尝试使用google people api处理您提供的请求。但是我有这个错误0{“error”:{“code”:401,“message”:“请求缺少必需的身份验证凭据。需要OAuth 2访问令牌、登录cookie或其他有效的身份验证凭据。请参阅developers.google.com/identity/sign-in/web/…,“status”:“UNAUTHENTICATED”}我的请求URL是您能帮我解决这里的问题吗文档中说
    RequestMask
    已被弃用,请使用
    personFields
    代替OP专门请求的有关联系人电子邮件地址和电话号码的信息。您的解决方案是针对登录的用户配置文件详细信息