private async Task DowloadOnlineData(object _) { var newRawSheetData = await GoogleSheetsV4.GetSheet(apiKey, spreadsheetId, sheetName); if (!latestRawSheetData.IsNullOrEmpty()) { foreach (var entry in ParseRawSheetData(FilterForChanges(latestRawSheetData, newRawSheetData))) { await fallbackStore.Set(entry.Key, entry.Value); } } else // Assuming that write is much more expensive then read: { foreach (var newEntry in ParseRawSheetData(newRawSheetData)) { var oldEntry = await fallbackStore.Get <object>(newEntry.Key, null); if (!JsonWriter.HasEqualJson(oldEntry, newEntry)) { await fallbackStore.Set(newEntry.Key, newEntry.Value); } } } latestRawSheetData = newRawSheetData; }
public async Task ExampleUsage1() { // Get your key from https://console.developers.google.com/apis/credentials var exampleApiKey = "AIzaSyCtcFQMgRIUHhSuXggm4BtXT4eZvUrBWN0"; // E.g. https://docs.google.com/spreadsheets/d/1ixEZ7EkbPNrB5ZiIYL12kL25jKIIIvyz4nZKtqTDqWc var spreadsheetId = "1ixEZ7EkbPNrB5ZiIYL12kL25jKIIIvyz4nZKtqTDqWc"; var sheetName = "MySheet 1"; // Has to match the sheet name Log.d("Will now load " + GoogleSheetsV4.GetShareLinkFor(spreadsheetId)); Log.d("API request to " + GoogleSheetsV4.GetApiUrlFor(exampleApiKey, spreadsheetId, sheetName)); var columns = await GoogleSheetsV4.GetSheet(exampleApiKey, spreadsheetId, sheetName); Assert.NotEmpty(columns); for (int i = 0; i < columns.Count; i++) { var column = columns[i]; Assert.NotEmpty(column); for (int j = 0; j < column.Count; j++) { var entry = column[j]; Log.d("entry " + i + "." + j + ": '" + entry + "'"); } } }