Google Sheets API v4 for Flutter/Dart

https://pub.dartlang.org/packages/googleapis can be used in Flutter and supports Sheets v4

See also

  • https://pub.dartlang.org/packages/googleapis_beta for other supported APIs that are only in beta state yet.
  • How to use Google API in flutter?

I created a project, enabled the sheets API for it, then created a 'robot-style' service account, and download the key as JSON. I then created a Google Sheet, and made it publicly accessible, noting its key.

This code connects, and updates an existing sheet by appending a new line of data. No error handling, but some print() statements to help visualise the flow.

// Key for service account copied from downloaded file for demo purposes ;-)
final _key = {
  "type": "service_account",
  "project_id": //etc
  // ...
  // ...
};

print('getting oauth');
auth
    .obtainAccessCredentialsViaServiceAccount(
        auth.ServiceAccountCredentials.fromJson(_key),
        scopes,
        http.Client())
    .then((auth.AccessCredentials cred) {
  print('got oauth');

  auth.AuthClient client = auth.authenticatedClient(http.Client(), cred);
  SheetsApi api = new SheetsApi(client);
  ValueRange vr = new ValueRange.fromJson({
    "values": [
      [ // fields A - J
        "15/02/2019", "via API 3", "5", "3", "3", "3", "3", "3", "3", "3"
      ]
    ]
  });
  print('about to append');
  api.spreadsheets.values
      .append(vr, '1cl...spreadsheet_key...W5E', 'A:J',
          valueInputOption: 'USER_ENTERED')
      .then((AppendValuesResponse r) {
    print('append completed.');
    client.close();
  });
  print('called append()');
});
print('ended?');

}