Я попытался использовать API таблиц Google v4, чтобы создать новый лист. Создаю успешно. Однако я обнаружил, что лист настраивается, поскольку я единственный, к кому есть доступ. Моя цель - разрешить пользователям, имеющим ссылку url, получить доступ к листу в запросе Java.
Я попытался установить для google credidential значение null при создании электронной таблицы, но он использовал as для создания электронной таблицы на диске. Таким образом, это не работает. Я просматриваю его библиотечный класс и api, но я не могу найти ничего, связанного с разрешением.
Я не уверен, что способ создания электронной таблицы находится на правильном пути. Вот мой код:
public class CreateSpreadSheetTask extends AsyncTask<Void, Void, Void> {
private com.google.api.services.sheets.v4.Sheets mService = null;
private Exception mLastError = null;
private String title = null;
private CreateSpreadsheetListener listener = null;
public CreateSpreadSheetTask(GoogleAccountCredential credential, String title, CreateSpreadsheetListener listener) {
HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory jsonFactory = JacksonFactory.getDefaultInstance();
mService = new Sheets.Builder(
transport, jsonFactory, credential)
.setApplicationName("Google Sheets API Android Quickstart")
.build();
this.title = title;
this.listener = listener;
}
@Override
protected Void doInBackground(Void... params) {
try {
this.listener.onRecvCreateSpreadsheet(getSpreadsheetFromApi());
} catch (Exception e) {
e.printStackTrace();
mLastError = e;
cancel(true);
}
return null;
}
private Spreadsheet getSpreadsheetFromApi() throws IOException {
Spreadsheet spreadsheet = new Spreadsheet();
SpreadsheetProperties properties = new SpreadsheetProperties();
properties.setTitle(this.title);
spreadsheet.setProperties(properties);
Sheets.Spreadsheets.Create request = mService.spreadsheets().create(spreadsheet);
return request.execute();
}
}
spreadsheetId
, который API Таблиц дает вам в ответе отCreate
. - person tehhowch   schedule 21.07.2018