6

API を介して公開スプレッドシート (誰でも編集できるように設定) をプログラムで更新しようとしていますが、失敗します。

401 - 「リクエストには有効な認証資格情報がありません。」

公的に編集可能なスプレッドシートであるため、「有効な認証資格情報」は必要ないと思います。どうやらAndroidキーを使用しても機能しないため、「ブラウザ」APIキーを生成する必要がありましたが、シートからデータを取得できます。

更新を機能させるためのトリックがあるかどうか、またはこれは 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();
4

1 に答える 1

5

現在、Sheets V4 API では、匿名編集が許可されているシートであっても、匿名編集は許可されていません。(それを許可するシートの匿名読み取りを許可します。)

于 2016-07-25T19:21:03.730 に答える