Android Google 表格 API V4 - 更新 public sheet 没有 OAuth
Android Google Sheets API V4 - Update public sheet without OAuth
我正在尝试通过 API 以编程方式更新 public 传播sheet(设置为任何人都可以编辑),但失败并显示
401 - "The request does not have valid authentication credentials."
我预计不需要 "valid authentication credentials",因为它是 public 可编辑的跨页 sheet。我可以从 sheet 获取数据就好了,尽管我必须生成一个 "browser" 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();
今天的表格 V4 API 不允许匿名编辑,即使对于允许匿名编辑的表格也是如此。 (它确实允许匿名读取允许它的工作表。)
我正在尝试通过 API 以编程方式更新 public 传播sheet(设置为任何人都可以编辑),但失败并显示
401 - "The request does not have valid authentication credentials."
我预计不需要 "valid authentication credentials",因为它是 public 可编辑的跨页 sheet。我可以从 sheet 获取数据就好了,尽管我必须生成一个 "browser" 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();
今天的表格 V4 API 不允许匿名编辑,即使对于允许匿名编辑的表格也是如此。 (它确实允许匿名读取允许它的工作表。)