You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用Google Contacts API更新联系人遇etag缺失错误如何解决?

解决Google Contacts API更新联系人时的etag错误

错误原因

Google Contacts API通过etag实现乐观并发控制,防止你在更新时覆盖其他操作对联系人数据的修改,因此要求更新请求必须携带对应版本的etag值。

解决步骤

  • 第一步:获取目标联系人的完整数据及etag
    调用people.get接口(或对应联系人查询接口),获取要更新的联系人完整信息,从中提取person.etag(全局etag)或person.metadata.sources.etag(对应数据源的etag)。

  • 第二步:在更新请求中携带etag
    两种携带方式选其一即可:

    1. 全局etag方式:在更新请求的JSON体中直接包含etag字段,值为获取到的全局etag:
      {
        "etag": "从API获取的全局etag值",
        "names": [
          {
            "givenName": "张三"
          }
        ]
        // 其他需要更新的字段
      }
      
    2. 数据源etag方式:如果针对特定数据源更新,需同时指定数据源ID和对应etag:
      {
        "metadata": {
          "sources": [
            {
              "id": "目标数据源ID",
              "etag": "对应数据源的etag值"
            }
          ]
        },
        "phoneNumbers": [
          {
            "value": "138xxxxxxx"
          }
        ]
      }
      
  • 注意事项

    • etag必须使用从API获取的原始值,不能手动修改。
    • 如果获取联系人后,该联系人被其他操作修改,etag会失效,此时需要重新获取最新的联系人数据和etag,再发起更新请求。

内容的提问来源于stack exchange,提问作者OneClapp OneClapp

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 13:20:48