Search code examples
javascriptgoogle-apps-scriptgmailgmail-api

Retrieving the output of a Google Apps script to local computer


I'm running a Google Apps Script (based on Gmail data) and I want to save some data from Javascript to local computer. How is it possible to save/download some data, computed in Javascript here:

enter image description here

to a local file?

All I have found is:

var addresses = [];
var threads = GmailApp.search("label:mylabel", 0, 10);
for (var i = 0; i < threads.length; i++) {
  var messages = threads[i].getMessages();
  for (var j = 0; j < messages.length; j++) {
    addresses.push(messages[j].getFrom());
  }
}
Logger.log(addresses);

but Logger.log(...) is not very useful to save this data to local computer.


Solution

  • I propose this as an other answer.

    If I got data from Google Apps Script and Google Drive, I think that Web Apps can be used for the situation. For example, it retrieves data from Google as a trigger run=ok, a following sample script can be used.

    Script :

    function doGet(e) {
      if (e.parameter.run == "ok") {
    
        // do something
    
        var result = "sample data"
        return ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.TEXT);
      }
      return
    }
    

    You can retrieve data of result using curl on your local PC as follows. The URL is Web Apps URL.

    curl -L https://script.google.com/macros/s/#####/exec?run=ok
    

    Result :

    sample data