我在很多网站上搜索了如何仅使用电子表格键进行操作,但没有成功。我可以检索它,获取我想要的所有数据,但我不能在其中附加新行。
我已经将我的电子表格发布到网上并公之于众,但我不断收到“com.google.gdata.util.ServiceException:Method Not Allowed”。
我正在尝试这样做:
SpreadsheetService service =
new SpreadsheetService("MySpreadsheetIntegration-v1");
try {
URL url = FeedURLFactory.getDefault().getWorksheetFeedUrl(SpreadsheetRequest.KEY, "public", "full"); //KEY = "1cenwTRlrGMzMTufkK27IIgAHvEGwVKR9Yr59Qako3u0";
WorksheetFeed worksheetFeed = service.getFeed(url, WorksheetFeed.class);
List<WorksheetEntry> worksheets = worksheetFeed.getEntries();
WorksheetEntry worksheet = worksheets.get(0);
URL listFeedUrl = worksheet.getListFeedUrl();
ListFeed listFeed = service.getFeed(listFeedUrl, ListFeed.class);
List<ListEntry> list = listFeed.getEntries();
//Checking all the entries, works like a charm
for (ListEntry row : list) {
Log.i("INSERT",row.getTitle().getPlainText() + "\t"
+ row.getPlainTextContent());
}
ListEntry row = new ListEntry();
row.getCustomElements().setValueLocal("id", "21");
row.getCustomElements().setValueLocal("type", si.getType().toString());
row.getCustomElements().setValueLocal("longitude", String.valueOf(si.getLongitude()));
row.getCustomElements().setValueLocal("latitude", String.valueOf(si.getLatitude()));
row.getCustomElements().setValueLocal("last_maint", String.valueOf(si.getLast()));
row.getCustomElements().setValueLocal("inst_date", String.valueOf(si.getInst()));
row = service.insert(listFeedUrl, row); //Exception is thrown here
return true;
}
答案 0 :(得分:1)
答案是否定的.OAuth令牌就像一把钥匙,它允许Google识别谁正在阅读或谁正在写入电子表格,如果你没有正确的访问级别,它就不会允许。即使您使用浏览器打开Google电子表格,浏览器也会从Google身份提供商生成OAuth令牌,并使用该令牌检查您的访问级别。
更新此处,如果您看到我的浏览器如何处理对Google电子表格的请求,它将首先重定向到身份提供商。大多数情况下,您需要模拟它才能工作。
答案 1 :(得分:0)
如果没有OAUTH2.0,您无法访问或操作Google Drive API。此外,Google Drive API甚至无法在专用网络上运行。
幸运的是,OAUTH2.0是强制性的!!
这是电子表格的OAUTH2.0 Java代码-----&gt;