我已經搜索了很多關於如何使用電子表格鍵但沒有成功的網站。我可以檢索它,獲取我想要的所有數據,但是我無法追加新行。有沒有辦法在沒有OAuth的情況下在Google Spreadsheet上添加一行使用java?
我已經將我的電子表格發佈到網絡並公開,但我一直在收到「com.google.gdata.util.ServiceException:方法不允許」。
那怎麼我試圖做到這一點:
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;
}
我覺得奇怪的事情是,我可以在不使用OAuth的情況下訪問和檢索電子表格中的數據(僅使用電子表格密鑰),上面的代碼證明了它! 根據@MirrorTowers這裏,這是可能做到我想要的,但他沒有解釋如何(他說這可能在評論中)。 他錯了嗎?還是我錯過了什麼? –
此電子表格的共享狀態如何? – Eranda
互聯網上的任何人都可以編輯:https://docs.google.com/spreadsheets/d/1cenwTRlrGMzMTufkK27IIgAHvEGwVKR9Yr59Qako3u0/edit –