当我请求 google 人 api 时没有得到最后修改的时间戳
Get no last modified timestamp when I request google people api
我想将我的小工具从 google 联系 api 升级到 google 人 api。授权有效,我从 peopeService 获得了联系方式。
但是 person.Metadata 源项目数组只有一个项目类型“CONTACT”。我确实想念 person.Metadata.Sources 中的 'updateTime'。
代码片段:
PeopleResource.ConnectionsResource.ListRequest peopleRequest =
peopleService.People.Connections.List("people/me");
if (pageToken != null)
{
peopleRequest.PageToken = pageToken;
}
peopleRequest.RequestMaskIncludeField =
person.names,person.organizations,person.birthdays,person.biographies,
person.emailAddresses,person.Metadata,person.PhoneNumbers,person.Addresses,
person.userDefined";
ListConnectionsResponse people = peopleRequest.Execute();
if (people != null && people.Connections != null && people.Connections.Count > 0)
{
foreach (var person in people.Connections)
{
ConvertGooglePerson2ContactItem(person);
}
if (people.NextPageToken != null)
{
GetAllContactItems(people.NextPageToken);
}
}
获取源数据:
if (person.Metadata!=null)
foreach (var item in person.Metadata.Sources)
{
...
}
调试会话的屏幕截图:
这可能是查询参数 Link 的问题。但是我不知道如何设置这个查询参数。
-------- 于 21 年 1 月 6 日添加为评论问题--------
我试过这个API:https://developers.google.com/people/api/rest/v1/people.connections/list
设置了两个字段:personFields 和 requestMask.includeField:
400 Bad Request
{
"error": {
"code": 400,
"message": "Please specify only one of requestMask or personFields.",
"status": "INVALID_ARGUMENT"
}
}
只有personFields的结果请看问题。
给出了只有 person 的 personFields 的元数据:
"resourceName": "people/c623380167042605258",
"etag": "%Eg4BAj0FBwk+Cz8MEEA3LhoEAQIFByIMcG9JRnpDRzBxS0U9",
"metadata": {
"sources": [
{
"type": "CONTACT",
"id": "8a6b0f5889920ca",
"etag": "#poIFzCG0qKE=",
"updateTime": "2021-01-04T22:44:04.913Z"
}
],
"objectType": "PERSON"
},
可能是 API 问题?
如何获取联系人的最后修改时间?
请求已通过以下代码片段解决:
var updateTime = person.Metadata.Sources.FirstOrDefault().UpdateTime;
确保在您的项目中使用 Google.Apis.PeopleService.v1 Google API 客户端库。
我想将我的小工具从 google 联系 api 升级到 google 人 api。授权有效,我从 peopeService 获得了联系方式。 但是 person.Metadata 源项目数组只有一个项目类型“CONTACT”。我确实想念 person.Metadata.Sources 中的 'updateTime'。 代码片段:
PeopleResource.ConnectionsResource.ListRequest peopleRequest =
peopleService.People.Connections.List("people/me");
if (pageToken != null)
{
peopleRequest.PageToken = pageToken;
}
peopleRequest.RequestMaskIncludeField =
person.names,person.organizations,person.birthdays,person.biographies,
person.emailAddresses,person.Metadata,person.PhoneNumbers,person.Addresses,
person.userDefined";
ListConnectionsResponse people = peopleRequest.Execute();
if (people != null && people.Connections != null && people.Connections.Count > 0)
{
foreach (var person in people.Connections)
{
ConvertGooglePerson2ContactItem(person);
}
if (people.NextPageToken != null)
{
GetAllContactItems(people.NextPageToken);
}
}
获取源数据:
if (person.Metadata!=null)
foreach (var item in person.Metadata.Sources)
{
...
}
调试会话的屏幕截图:
这可能是查询参数 Link 的问题。但是我不知道如何设置这个查询参数。
-------- 于 21 年 1 月 6 日添加为评论问题--------
我试过这个API:https://developers.google.com/people/api/rest/v1/people.connections/list
设置了两个字段:personFields 和 requestMask.includeField:
400 Bad Request
{
"error": {
"code": 400,
"message": "Please specify only one of requestMask or personFields.",
"status": "INVALID_ARGUMENT"
}
}
只有personFields的结果请看问题。
给出了只有 person 的 personFields 的元数据:
"resourceName": "people/c623380167042605258",
"etag": "%Eg4BAj0FBwk+Cz8MEEA3LhoEAQIFByIMcG9JRnpDRzBxS0U9",
"metadata": {
"sources": [
{
"type": "CONTACT",
"id": "8a6b0f5889920ca",
"etag": "#poIFzCG0qKE=",
"updateTime": "2021-01-04T22:44:04.913Z"
}
],
"objectType": "PERSON"
},
可能是 API 问题?
如何获取联系人的最后修改时间?
请求已通过以下代码片段解决:
var updateTime = person.Metadata.Sources.FirstOrDefault().UpdateTime;
确保在您的项目中使用 Google.Apis.PeopleService.v1 Google API 客户端库。