使用Google apps脚本创建Etag字符串



我使用Google people API来更新联系人。

我保存已创建联系人的resourceName,当我更新联系人时,我只使用以下代码

People.People.updateContact({"emailAddresses": [{
"type": "work",
"value": "example@gmail.com"
}]}, "people/c6679930577989153852")

但是这会抛出错误- GoogleJsonResponseException: API调用people.people. updateconcontact失败,错误:请求必须设置person。要更新的数据源的Etag或person.metadata.sources.etag。

如果在创建联系人时不存储已创建的etag,如何创建etag ?是否有一种方法,我可以创建一个新的etag使用一个函数,所以我可以强制更新整个联系人?

如果是,我如何创建updatePersonFields掩码?

如何处理etagContacts API错误。

服务器返回一个400错误,原因"failedPrecondition"如果person.metadata.sources.etag与联系人的etag不同,则表示该联系人在读取其数据后发生了更改。客户端应该获取最新的person,并将他们的更新合并到最新的person中。

<<p>来源/em>

所以你认为你需要etag来完成你想要的操作是正确的。

但是,生成它不是正确的方法。

您需要首先使用任何personFields进行简单的get请求以获得当前的etag值。然后您将在更新中使用此etag值。

这是为了防止您覆盖和复制可能重要的信息。

参考

  • updateContact
  • get

最新更新