我正在尝试通过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();
如今,Sheets V4 API不允许匿名编辑,即使允许的工作表也是如此。(它允许匿名读取允许的工作表。)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句