Google People API 返回 Grpc 状态码 null

Posted

技术标签:

【中文标题】Google People API 返回 Grpc 状态码 null【英文标题】:Google People API return Grpc status code null 【发布时间】:2021-10-03 13:23:18 【问题描述】:

我想在 Google People API 中使用 Grpc 状态代码而不是 Http 状态代码。 我收到一个PersonResponse 对象作为响应(https://developers.google.com/people/api/rest/v1/PersonResponse),但是当响应成功时,我的 Grpc 状态代码为空。

/** @var GetPeopleResponse $getPeopleResponse */
$getPeopleResponse = $googleSyncService->getBatchGet(['people/c123', 'people/c6712532233844095820']);
foreach ($getPeopleResponse->getResponses() as $personResponse) 
    dump([
        'Grpc Status Code' => $personResponse->getStatus()->getCode(),
        'Http Status Code' => $personResponse->getHttpStatusCode()
    ]);

使用无效的人员 ID,我得到了这个状态码(如预期的那样):

array:2 [▼
  "Grpc Status Code" => 5
  "Http Status Code" => 404
]

使用有效的人员 ID,我得到了这个状态码:

array:2 [▼
  "Grpc Status Code" => null
  "Http Status Code" => 200
]

为什么我没有得到 Grpc 状态码 0 ? 我正在使用google/apiclient 版本2.9.2

【问题讨论】:

people api 还支持 grpc 吗?如果它对我来说是新的。 @DalmTo 我只是想使用 Grpc 状态代码,因为在我提出问题的链接中它说“httpStatusCode 已弃用(请改用状态)” 【参考方案1】:

People API 开发人员指出,如果请求成功,您应该会看到 null 状态。 https://issuetracker.google.com/issues/183335975#comment2

虽然这没有很好的记录。我建议提交问题以在他们的 API 文档中明确该行为。

【讨论】:

以上是关于Google People API 返回 Grpc 状态码 null的主要内容,如果未能解决你的问题,请参考以下文章

Google People API - 生日 - GET 请求中不返回日期对象

调用 bulkCreateContact 时 People API 返回错误

方法:people.get()不返回名称

使用 google people API 访问 google 连接

使用 Google Script 和 People API 指定来源会覆盖同步令牌

使用 Google Scripts 从 Google People API 获取 google 联系人电子邮件目录中的电子邮件列表