Google api 无法使用Google My Business API更新位置

Google api 无法使用Google My Business API更新位置,google-api,patch,google-my-business-api,Google Api,Patch,Google My Business Api,一段时间以来,我一直在尝试建立一个工作补丁请求,以便通过Google My Business API更新位置,但我还没有提出成功的请求 这是我最后一次尝试请求时的样子: { location": { "primaryPhone": "1-800-TEST" }, "languageCode": "en", "fieldMask": "primaryPhone", "validateOnly": true } 当我省略类似fieldMask的内容时,我会得到一个错误,

一段时间以来,我一直在尝试建立一个工作补丁请求,以便通过Google My Business API更新位置,但我还没有提出成功的请求

这是我最后一次尝试请求时的样子:

{
  location": {
    "primaryPhone": "1-800-TEST"
  },
  "languageCode": "en",
  "fieldMask": "primaryPhone",
  "validateOnly": true
}
当我省略类似fieldMask的内容时,我会得到一个错误,表示未设置address.country,但如果存在它,我会得到以下错误:

{
  "error": {
    "code": 400,
    "message": "Request contains an invalid argument.",
    "status": "INVALID_ARGUMENT"
  }
}
信息量不大:p


知道我做错了什么吗?有人有工作样品要求吗?最好是更新开放时间:

我在这里结束时正在寻找一个例子,然后再让它发挥作用。所以,迟做总比不做好,这里有一个有效的答案

描述如何处理请求的字段与进入该位置的数据之间存在区别。前者追求的是什么?在URL中。后者进入体内

因此,您应该发布:

PATCH https://mybusiness.googleapis.com/v3/accounts/$accountId/locations/$locationId?languageCode=en&fieldMask=primaryPhone&validateOnly=true
包括:

{"primaryPhone":  "1-800-TEST"}

假设您有一个有效的授权头,这应该会起作用。

很难帮助您查看代码,但是。尝试并执行一个locations.get,它将返回一个location body,对其进行更改并将其修补回来。我认为您需要设置所有无法拾取和选择的字段。据我所知,如果我使用fieldMask属性指定哪些字段:要更新的特定字段,我应该只能提交需要更新的字段。如果未指定掩码,则这将被视为完全更新,所有字段都设置为传入的值,其中可能包括请求中未设置的空字段。字段的完全限定名的逗号分隔列表。示例:user.displayName,photo.The代码也不是很有趣,例如GET请求工作正常-我几乎可以肯定请求的主体有问题,但是我还没有弄清楚是什么:这是一个理论,我从来没有通过只发送几个字段来让它工作,但是发送所有内容都可以。那么这可能是个问题,它不是HTTP Get请求,而是HTTP补丁请求。