通过Drive API

时间:2019-01-08 10:02:50

标签: python google-api google-drive-api google-api-python-client google-drive-team-drive

我需要使用Google Drive API创建文件(我使用的是当前最新的v3)。如果重要,请使用python。

我的代码在下面

drive_service.files().create(supportsTeamDrives=True, body={
                    'name': 'test-file',
                    'mimeType': 'application/vnd.google-apps.spreadsheet',
                    'parents': [folder_id],
                    'properties': {'locale': 'en_GB',
                                   'timeZone': 'Europe/Berlin'}
                })

在文档@ here之后,我尝试将properties键的语言环境设置为所需的语言环境,但是它始终使用我帐户的默认语言环境来创建文件。

如何使其在创建时起作用?我可以填写另一个参数吗?

2 个答案:

答案 0 :(得分:1)

我刚刚在Apis Explorer

中对此进行了测试

创建文件请求

POST https://www.googleapis.com/drive/v3/files?key={YOUR_API_KEY}

{
 "properties": {
  "test": "test"
 },
 "name": "Hello"
}

响应

{    

 "kind": "drive#file",
 "id": "1CYFI5rootSO5cndBD2gFb1n8SVvJ7_jo",
 "name": "Hello",
 "mimeType": "application/octet-stream"
}

文件获取请求

GET https://www.googleapis.com/drive/v3/files/1CYFI5rootSO5cndBD2gFb1n8SVvJ7_jo?fields=*&key={YOUR_API_KEY}

响应

 "kind": "drive#file",
 "id": "1CYFI5rootSO5cndBD2gFb1n8SVvJ7_jo",
 "name": "Hello",
 "mimeType": "application/octet-stream",
 "starred": false,
 "trashed": false,
 "explicitlyTrashed": false,
 "parents": [
  "0AJpJkOVaKccEUk9PVA"
 ],
 "properties": {
  "test": "test"
 },

似乎工作正常,建议您尝试检查以下内容:

  • 从创建文件的响应中返回的文件ID。为了确保您正在检查刚刚上传的内容。每次运行时,您都不会创建一个新文件。
  • 如果要检查属性结果,请记住在fields=*中添加file.get

答案 1 :(得分:1)

您的问题是您要混淆两个不同的“属性”。

您要设置的属性是用户定义的属性,这些属性只能由您自己使用。它们对Google无关紧要。

要设置的属性是Spreadsheet API的一部分。参见https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets#SpreadsheetProperties

最简单的解决方案是不使用Drive API创建电子表格。而是将电子表格API用作已描述的https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create