我想更新 Cloud 端硬盘中文件的图片位置标记 . 此时我已经确定了两种似乎可以执行此操作并尝试使用“试用此API”栏进行更改的方法
-
文件:更新https://developers.google.com/drive/v2/reference/files/update
-
或文件:补丁... drive / v2 / reference / files / patch
我提供了一个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 回答
意味着您无法通过API更改这些字段 . 该字段是只读的 .
如果您查看file resource的文档,您会注意到某些字段是可写的,而其他字段不是空白的 .
话虽如此,我已向谷歌发送了一封电子邮件,建议他们添加只读,而不是将这些字段留空以便澄清 .
Solution :我建议您尝试下载文件并在本地机器上更改位置 .
在您链接到'Request body'部分的(https://developers.google.com/drive/v2/reference/files/update)页面上,您可以找到所有可写属性的列表 . 该位置不存在,因此无法通过此API写入 .
但是,我承认在这种情况下,回应200是非常误导的 .
在this page上,您会找到 all properties of the file resource ,其中包含可以写入的信息 .