I've searched a lot of websites about how to do that using only the spreadsheet key, but with no success. I can retrieve it, get all the data I want, but I can't append a new row to it.
I've already published my spreadsheet to the web and made it public but I keep getting " com.google.gdata.util.ServiceException: Method Not Allowed".
That's how I'm trying to do it:
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;
}