I'm using Google SpreadSheet and IFTTT to do a DB Call Log of my phone, this is working perfect. Now I'm trying to populate a form in a web page by API from this DB Call Log. I would like to send lastRow to my API every time IFTTT populate the Sheet. The first Row in the Sheet is populated with headers name: departament, first_name, last_name, email, phone, deadline.
So i manage to send data to API like this:
function myFunction() {
var data = {
'department': 1,
'first_name' : 'Test',
'last_name' : 'test',
'email' : 'email@gmail.com',
'phone' : ["0700000000"],
'deadline' : '2017-04-10T00:00'
}
var payload = JSON.stringify(data)
var headers = {
'AUTHORIZATION': 'Token b8473654v6345teryrby456yrtyrtyertytdvfh87afc',
// Add any other required parameters for XXX API.
};
var url = 'http://api.XXX.com/api/1.0/clients/';
var options = {
'method': 'post',
'contentType': 'application/json',
'headers': headers,
'payload' : payload,
};
var response = UrlFetchApp.fetch(url, options);
}
Now i need to automate it but i don't know how:
(this is a SpreadSheet question) IFTTT populate the "deadline" column in this format "April 10, 2017 at 01:54PM" however the needed format for API is "2017-04-10T13:54", how to auto modify it?
to get the values from Sheet cells (from lastRow) and send them throw json payload
to set a trigger event so the script trigger's every time IFTTT populates a new Row in the Sheet.
Thank you!
Will try to answer the question one by one:
1) Reformat date: You can use Utilities.formatDate() in apps script to modify your date.
Code:
2) Get last row Values: You can use
getLastRow()
andgetValues()
functions in apps scriptsEdit
To get values as is i.e. displayed values in the sheet, you can modify the getvalues to getDisplayValues() like so:
3) Trigger your sheet: I will not reinvent the wheel here. But will provide you with an awesome answer from @Mogsdad Link: Trigger an email when a cell is written into from another app (IFTTT)
In short, you will have to use onEdit Trigger to detect new entries.
If on edit doesn't work, try on Change trigger.
Complete code:
Hope that helps!