Android Google Sheets API V4 - обновите общедоступный лист без OAuth

Я пытаюсь программно обновить общедоступную электронную таблицу (которую может редактировать любой) через API, но это не удается

401 - «Запрос не имеет действительных учетных данных для аутентификации».

Я ожидал, что мне не понадобятся «действительные учетные данные для аутентификации», поскольку это общедоступная редактируемая электронная таблица. Я могу ПОЛУЧИТЬ данные из таблицы просто отлично, хотя мне пришлось сгенерировать API-ключ «браузера», поскольку, по-видимому, использование ключа Android не работает.

Кто-нибудь знает, есть ли уловка, чтобы заставить обновление работать, или это невозможно с API?

Пример кода, который я взламываю вместе:

// Don't think I even need this?
GoogleCredential credential = new GoogleCredential();
credential.createScoped(Collections.singleton(SheetsScopes.SPREADSHEETS));

HttpTransport transport = AndroidHttp.newCompatibleTransport();
JsonFactory factory = JacksonFactory.getDefaultInstance();
final Sheets sheets = new Sheets.Builder(transport, factory, credential)
            .setApplicationName("My Awesome App")
            .build();
final String sheetID = "[ID Of Valid Public Spreadsheet Here]";
final String range = "A:S";
final ValueRange content = new ValueRange();
content.set("Column A Name", "Some Value to Set");
new Thread() {
    @Override
    public void run() {
        try {
            UpdateValuesResponse valueRange = sheets.spreadsheets().values()
                    .update(sheetID, range, content)
                    .setKey("My-Valid-Browser-Api-Key")
                    .execute();
                mLog.D("Got values: " + valueRange);
            }
            catch (IOException e) {
                mLog.E("Sheets failed", e);
            }
        }
    }.start();

person dominicoder    schedule 19.07.2016    source источник
comment
вы были правы, вы можете оставить значение null для параметра учетных данных   -  person Mia    schedule 12.07.2017


Ответы (1)


API Таблиц V4 сегодня не допускает анонимного редактирования даже для тех листов, которые это позволяют. (Это действительно позволяет анонимное чтение для листов, которые это позволяют.)

person Sam Berlin    schedule 25.07.2016
comment
Спасибо за информацию. Это работает как задумано? Если да, смог бы уточнить рациональное? Спасибо. - person dominicoder; 26.07.2016
comment
Никакого объяснения нет: issueetracker.google.com/issues/36755576#comment3 - person Lawrence Kesteloot; 16.02.2020
comment
Но как работает анонимное редактирование или инкогнито без входа в систему? - person HardQuestions; 10.10.2020