我想更新云端硬盘中文件的图片位置标记。此时我已经确定了两种似乎可以做到这一点并尝试使用“试用此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资源管理器?)
任何人都可以提供更多信息吗?感谢
答案 0 :(得分:1)
"资源正文包括不可直接写入的字段。"
意味着您无法通过API更改这些字段。该字段是只读的。
如果您查看file resource的文档,您会注意到某些字段是可写的,而其他字段不是空白的。
据说我已经向Google发送了一封电子邮件,建议他们添加只读,而不是将这些字段留空以便澄清。
解决方案:我建议您尝试下载文件并在机器上本地更改位置。
答案 1 :(得分:1)
在您链接到(https://developers.google.com/drive/v2/reference/files/update)页面的“请求正文”部分下,您可以找到所有可写属性的列表。该位置不存在,因此无法通过此API写入。
但是,我承认在这种情况下,回应200会产生误导。
在this page上,您会找到文件资源的所有属性,其中包含哪些信息是可写的。