Создайте файл Drive с заданным языковым стандартом в международных настройках через Drive API

Мне нужно создать файл с помощью 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'}
                })

Следуя документации @ здесь, я попытался установить properties ключ с языковым стандартом, установленным на требуемый, но он продолжает создавать файл с языковым стандартом моей учетной записи по умолчанию.

Как я могу заставить это работать во время создания? Есть ли другой параметр, который я могу заполнить?

2 ответа

Решение

Ваша проблема в том, что вы смешиваете два разных "свойства".

Свойства, которые вы устанавливаете, являются определяемыми пользователем свойствами, которые используются только вами самим. Они не имеют никакого значения для Google.

Свойства, которые вы хотите установить, являются частью API Spreadsheet. См. https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets

Самое простое решение - не использовать Drive API для создания электронной таблицы. Вместо этого используйте API таблиц, как описано ниже, https://developers.google.com/sheets/api/reference/rest/v4/spreadsheets/create

Я только что проверил это в 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"
 },

Похоже, что работает очень хорошо, я предлагаю вам попробовать проверить следующее:

  • Идентификатор файла, который возвращается в ответе от создания файла. Чтобы убедиться, что вы проверяете тот, который вы только что загрузили. Каждый раз, когда вы запускаете этот файл, вы создаете новый файл.
  • Также не забудьте добавить fields=* с file.get если это то, что вы используете, чтобы проверить результат ваших свойств.