Не удалось найти недавно созданную электронную таблицу с java на Google диске

#java #google-drive-api #google-sheets-api #google-api-java-client #service-accounts

Вопрос:

Я пытаюсь создать электронную таблицу, используя учетные данные учетной записи службы Google с java, в конце выполнения я получил недавно созданный идентификатор электронной таблицы, но когда я открыл свой Google диск, у меня не было ни одного листа с вновь созданным идентификатором. пожалуйста, помогите мне решить эту проблему.

это метод, который я использовал для создания нового листа :

 public static void createSheet() throws IOException {
        String title =  LocalDateTime.now().toString() ;
        Spreadsheet spreadsheet = new Spreadsheet()
                .setProperties(new SpreadsheetProperties()
                        .setTitle(title));
        spreadsheet = service.spreadsheets().create(spreadsheet)
                .setFields("spreadsheetId")
                .execute();
        spreadsheetId = spreadsheet.getSpreadsheetId();
        System.out.println("Spreadsheet ID: "   spreadsheet.getSpreadsheetId());
    }
 

и я также пытался получить доступ к идентификатору электронной таблицы через браузер, но он запросил у меня разрешение на доступ.

Ответ №1:

Учетная запись службы-это не вы. Учетная запись службы-это фиктивный пользователь с собственной учетной записью Google Drive.

Если вы сделаете файл.список вы обнаружите, что новый лист был создан в учетной записи службы учетных записей Google Drive.

Если вы хотите создать его в своей собственной учетной записи, затем создайте каталог в своей учетной записи на личном диске, поделитесь каталогом с учетной записью службы, как если бы другой пользователь просто взял адрес электронной почты учетной записи службы и поделился им таким образом.

Затем, когда вы создадите свой лист, вам нужно будет указать для родительского файла идентификатор каталога, в который вы хотите его загрузить.Вы можете использовать метод setParents, чтобы добавить его в метаданные файла.

 .setProperties(new SpreadsheetProperties()
.setParents(fileid)
.setTitle(title));
 

Если вы хотите узнать больше о том, как работают учетные записи служб, это видео может показаться вам интересным. Он также точно показывает, как предоставить общий доступ к папке с учетной записью службы. Следует ли вам использовать учетную запись службы Google после 2021 года?