Pentaho

 View Only

 "Google Spreadsheet Input/Output" plugin compatible with Google Sheets API v4?

  • Pentaho
  • Kettle
  • Pentaho
  • Pentaho Data Integration PDI
Sebastian Lechner's profile image
Sebastian Lechner posted 01-07-2020 15:41

We are using the "Google Spreadsheet Input/Output" plugin from the marketplace created by Brian Zoetewey which is no longer maintained. Github repository link. Recently I have received an email from Google with the subject:

[Action Required] Google Sheets v3 API is being shutdown on March 3, 2020

 

Can someone have a look the source code and check if the plugin is using API v3 or v4. I tried to find out myself, but looking at the code I don't have a clue.


#Kettle
#Pentaho
#PentahoDataIntegrationPDI
Sebastian Lechner's profile image
Sebastian Lechner

Instead of giving an answer to this question, the plugin has been removed from the marketplace although it is still working and it seems to be the only available Google Spreadsheet solution in the Community Edition. Very helpful.

Dean Flinter's profile image
Dean Flinter

It is v3 unfortunately

Sergio Ribeiro's profile image
Sergio Ribeiro

Hello all,

 

Thought this information may be useful to someone.

 

As of this date, of the 27 forks of that repository, 19 are even or behind the original one.

 

I've took a (little) look and four of the other ones seem promising in that have some reference about the v4 API or the code seems to handle that:

  • https://github.com/huantaoliu/pdi-google-spreadsheet-plugin
  • https://github.com/LatinumNetwork/pdi-google-spreadsheet-plugin
  • https://github.com/noviadi/pdi-google-spreadsheet-plugin
  • https://github.com/valdineygomes/pdi-google-spreadsheet-plugin

 

Note that I did not test, nor fully reviewed, any of them.

 

Regards,

 

Sérgio Ribeiro

Porto - Portugal

 

Caroline Jacquet's profile image
Caroline Jacquet

Appreciate these references!!

Sebastian Lechner's profile image
Sebastian Lechner

Hi,

 

I have checked the forks posted by @Sergio Ribeiro​ and found that they cannot be built because of outdated dependency structure in the pom.xml. It took me a day to refactor the pom.xml updating all dependency artifacts to their latest available version and add missing dependencies. The plugin can now be built again and I had the gsheet input step running in production for a week now without any problems.

What would you say is the best way to make the new pom.xml available to the public? Create another fork? Create Pull Request for the existing forks, hoping someone cares to merge?

Please advise.

Dean Flinter's profile image
Dean Flinter

Perhaps make your own fork with the updated pom.xml.

 

However are you absolutley sure that it is 100% API v4 compatible? If some parts of it still reference v3, it will break on 4th March

Sebastian Lechner's profile image
Sebastian Lechner

I have used a fork which claims to have updated to use API v4 -> https://github.com/valdineygomes/pdi-google-spreadsheet-plugin

I just ran the build process again and saw that I get this warning:

[WARNING] .../pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java: Some input files use or override a deprecated API.

not sure what it really means.

 

 

Sebastian Lechner's profile image
Sebastian Lechner

I could get more detailed output:

 

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[13,31] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[24,48] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[19,31] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[25,48] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheet.java:[3,52] com.google.api.client.googleapis.auth.oauth2.GoogleCredential in com.google.api.client.googleapis.auth.oauth2 has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[64,19] getDialogClassName() in org.pentaho.di.trans.step.StepMetaInterface has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[40,13] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[54,9] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[54,40] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[58,27] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[64,19] getDialogClassName() in org.pentaho.di.trans.step.BaseStepMeta has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[69,27] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[104,12] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[108,32] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[134,18] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[137,65] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[144,70] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[169,38] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[174,40] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[181,44] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[202,38] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[205,40] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[212,44] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[228,17] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[231,84] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[238,89] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetInputMeta.java:[251,18] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetOutputMeta.java:[49,19] getDialogClassName() in org.pentaho.di.trans.step.StepMetaInterface has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/trans/steps/googlespreadsheet/GoogleSpreadsheetOutputMeta.java:[49,19] getDialogClassName() in org.pentaho.di.trans.step.BaseStepMeta has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[316,71] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[323,76] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[330,28] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[593,13] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[598,35] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[624,44] org.pentaho.di.trans.steps.textfileinput.TextFileInputField in org.pentaho.di.trans.steps.textfileinput has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[628,46] org.pentaho.di.core.row.ValueMeta in org.pentaho.di.core.row has been deprecated

[WARNING] /Users/sl/pdi-google-spreadsheet-plugin/src/main/java/org/ccci/gto/pdi/ui/trans/steps/googlespreadsheet/GoogleSpreadsheetInputDialog.java:[635,50]

...

 

Dean Flinter's profile image
Dean Flinter

All look like Pentaho deprecations

 

If it is working, then great but it is possible Pentaho will eventually retire these too

Ana Gonzalez's profile image
Ana Gonzalez

Hi Sebastien, just so you know, there's someone at Hitachi working on upgrading the plugin, I don't know if it will be in time before Google shut down the old version or if it will be released for the Community. I'll test it when it's available.

Meanwhile, just in case it's not in time, I'm working on a R script (the server with Pentaho installed has R already installed, so I can use it) to download my Google Spreadsheet. I asked other people around what they were using instead of the plugin, and others were using python scripts.

 

So if you have python or R in your server you can work some script to download what you need if the upgrading of the plugin is giving you a hard time. I'm not a Java developer, so upgrading it myself would be too much work, finding some example to adapt for my use case in R or Python seemed much more affordable in my case 😉

Regards

Sebastian Lechner's profile image
Sebastian Lechner

Hi Ana, thanks for your reply. In the meantime I found out that

can be compiled and that it is working. During compilation, it has a few deprecation warnings for some pentaho classes and for googleapis.auth.oauth2. From my point of view this is fine for now, and I believe with this fork, Google Spreadsheet plugin is running with API v4.

However, we are trying to replace the deprecated classes and modules with the recommended ones and would do a PR on the above repository then.

Sebastian Lechner's profile image
Sebastian Lechner

can be compiled and it is working. To me it looks, that Valdiney Gomes made the fork compatible with API v4 by upgrading the pom.xml dependencies to newer version numbers. We will try to replace the deprecated classes and methods by newer ones. If we succeed, we'll create a PR or a new fork.

Jean-Francois Monteil's profile image
Jean-Francois Monteil

https://github.com/jfmonteil/Pentaho-Google-Sheet-Plugin new API V4 google sheet plugin, enjoy and please report bugs