Google云端硬盘和Google API资源管理器 - 更改图像元数据 - 位置

时间:2017-02-20 02:36:21

标签: google-api google-drive-api google-apis-explorer

我想更新云端硬盘中文件的图片位置标记。此时我已经确定了两种似乎可以做到这一点并尝试使用“试用此API”栏进行更改的方法

我提供了一个fileID,将字段设置为“imageMediaMetadata / location”以过滤对我感兴趣的数据的响应,并按如下方式设置请求体

{
  "imageMediaMetadata": {
    "location": {
      "latitude": -30.12345678901234
      "longitude": 170.12345678901234
    }
  }
}

两种方法都返回绿色成功代码200 和返回字符串,但返回字符串显示数据不变(我试图更改此图像的纬度符号)。

 {
  "imageMediaMetadata": {
    "location": {
      "latitude": 30.12345678901234
      "longitude": 170.12345678901234
    }
  }
}

尝试更新方法的另一个位置是developers.google.com/apis-explorer/#p/drive/v3/drive.files.update

这声称它“使用补丁语义更新文件的元数据和/或内容。”。

使用相同的输入,此方法返回错误代码 - 403,具体如下:

{
 "error": {
  "errors": [
   {
    "domain": "global",
    "reason": "fieldNotWritable",
    "message": "The resource body includes fields which are not directly writable."
   }
  ],
  "code": 403,
  "message": "The resource body includes fields which are not directly writable."
 }
}

所以看来(a)我是如何形成请求的,或者(b)位置数据是只读的,不能通过API修改。(或者这可能会起作用)正常使用,但不能通过API资源管理器?)

任何人都可以提供更多信息吗?感谢

2 个答案:

答案 0 :(得分:1)

  

"资源正文包括不可直接写入的字段。"

意味着您无法通过API更改这些字段。该字段是只读的。

如果您查看file resource的文档,您会注意到某些字段是可写的,而其他字段不是空白的。

据说我已经向Google发送了一封电子邮件,建议他们添加只读,而不是将这些字段留空以便澄清。

解决方案:我建议您尝试下载文件并在机器上本地更改位置。

答案 1 :(得分:1)

在您链接到(https://developers.google.com/drive/v2/reference/files/update)页面的“请求正文”部分下,您可以找到所有可写属性的列表。该位置不存在,因此无法通过此API写入。

但是,我承认在这种情况下,回应200会产生误导。

this page上,您会找到文件资源的所有属性,其中包含哪些信息是可写的。