【发布时间】:2021-08-10 12:19:36
【问题描述】:
由于弃用,我们正在尝试从 Google Contacts API 迁移到 Google People API。
使用 Google People API 创建联系人后出现一些奇怪的行为。
首先我们创建一个新联系人
POST https://people.googleapis.com/v1/people:createContact?sources=READ_SOURCE_TYPE_CONTACT&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
Content-Type: application/json
{
"names": [
{
"givenName": "Test",
"familyName": "Contact"
}
],
"emailAddresses": [
{
"value": "test@tester.com.au"
}
]
}
然后我们查询新创建的联系人
GET https://people.googleapis.com/v1/people:searchContacts?query=test%40tester.com.au&readMask=names%2CemailAddresses%2Cmetadata%2Cmemberships%2CuserDefined&key=[YOUR_API_KEY] HTTP/1.1
Authorization: Bearer [YOUR_ACCESS_TOKEN]
Accept: application/json
搜索返回空结果
{}
如果我们现在再次查询,我们会得到预期的结果
{
"results": [
{
"person": {
"resourceName": "people/c1041359888227912421",
"etag": "%EggBAj0JPhY3LhoBAiIMd0UrSkMrM21tMG89",
.....
]
}
不确定这里发生了什么?还有其他人遇到这种奇怪的行为吗?
【问题讨论】:
-
这听起来有点像传播问题。新插入的记录需要一段时间才能用于 GET 请求。虽然理论上你应该得到一个 4XX 错误“找不到联系人”或类似的东西 - 你在 INSERT 和 GET 之间等待多长时间?
-
没关系,我测试了这个,即使在等待几个小时后它也是如此。
-
@iansedano 确实,这不是传播问题 - 唯一的解决方法是在插入后查询。尽管我确实记得在返回正确结果之前看到了多个查询。这是一个主要问题,因为我们使用电子邮件地址来匹配系统之间的记录。结果重复。
标签: google-api google-contacts-api google-people-api