Sushi.Mediakiwi.Module.GoogleSheetsSync 1.0.10

There is a newer version of this package available.
See the version list below for details.
dotnet add package Sushi.Mediakiwi.Module.GoogleSheetsSync --version 1.0.10                
NuGet\Install-Package Sushi.Mediakiwi.Module.GoogleSheetsSync -Version 1.0.10                
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Sushi.Mediakiwi.Module.GoogleSheetsSync" Version="1.0.10" />                
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Sushi.Mediakiwi.Module.GoogleSheetsSync --version 1.0.10                
#r "nuget: Sushi.Mediakiwi.Module.GoogleSheetsSync, 1.0.10"                
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Sushi.Mediakiwi.Module.GoogleSheetsSync as a Cake Addin
#addin nuget:?package=Sushi.Mediakiwi.Module.GoogleSheetsSync&version=1.0.10

// Install Sushi.Mediakiwi.Module.GoogleSheetsSync as a Cake Tool
#tool nuget:?package=Sushi.Mediakiwi.Module.GoogleSheetsSync&version=1.0.10                

Sushi.Mediakiwi.Module.GoogleSheetsSync

A list module for use in Mediakiwi which allows for synchronizing data with GoogleSheets. This Module can be used in two ways.

1. Using a Google Service Account

This is the easiest and fastest way to get started, this will create a shared SpreadSheet for every user of the module, so every user sees the same data. If you want to use this option, take a look at The needed steps for creating Service Account Credentials

Installation steps

  • Download the ServiceAccount credentials file from the Google Cloud API explorer.
  • Place this file in the Root of your project and set 'Copy to output directory' to always.
  • Add this section to your configuration file (appsettings.json) :
"GoogleSheetsSettings": {
  // The relative filename for the ServiceAccount credentials file
  "service-account-filename": "sheetsCredentials.json",
},

2. Using Google OpenID

This is the more advanced way of using the module. This will create a SpreadSheet unique for every user of the module. So if User A exports data to a spreadsheet and edits it, User B will not see those changes, because User B also has a personal version of the exported data at hand. If you want to use this option, take a look at The needed steps for creating a Google Open ID

Installation steps

  • Add this section to your configuration file (appsettings.json) :
"GoogleSheetsSettings": {
  // Get this ClientID from the Google Cloud platform
  "client-id": "[GOOGLE-CLIENT-ID]",
  // Get this ClientSecret from the Google Cloud platform
  "client-secret": "[GOOGLE-CLIENT-SECRET]",
  // What is the relative url path to listen to OpenID requests
  "handler-path": "/signin-google"
},
  • Add these lines to your application startup (Configure) code, before the call to app.UseMediakiwi() :
// Install the OpenID listener (only needed when ClientID and ClientSecret are used)
app.UseGoogleOpenID();

3. Global installation steps

  • Add these lines to your services startup (ConfigureServices) code :
// Install all included modules
services.AddGoogleSheetsModules(true, true, true);

This will also create the database table if needed, so the database connectionstring must be known at this point. This can be done with :

MicroORM.DatabaseConfiguration.SetDefaultConnectionString(connString);

Things to note :

  • You can also enable only one Module, by setting enableExportModule, enableViewModule or enableImportModule.
  • The Import module will only show up if the list has an implementation for the ListDataReceived event.
  • The Export module will only show up if the list has the setting for XLS export enabled.
  • The View module will only show up when a list has been exported at least once.
Product Compatible and additional computed target framework versions.
.NET net6.0 is compatible.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last updated
1.0.11 6,735 10/18/2022
1.0.10 429 9/2/2022
1.0.9 406 9/1/2022
1.0.7 2,171 5/20/2022
1.0.6 426 5/19/2022
1.0.5 493 4/29/2022
1.0.4 731 2/21/2022
1.0.3 427 2/21/2022
1.0.2 433 2/18/2022
1.0.0 438 2/16/2022