Convert google script (*.gs) file to Python - javascript

I have found an interesting google script file, but would like to change it a bit to run it locally on my system.
Locally I use Python.
How can this be easily converted or to which language is it comparable?
The script is generating a new presentation with a specific slide template (shape).
This part raises the most questions, of how to do it locally.
Probably something with OpenCv / mathplotlib to generate a template.

If you are looking "easy" options, keep using Google Apps Script.
Google Apps Script uses JavaScript as programming language and has several services that make it convenient to automate Google apps like Google Slides.
In order to minimize the convertion work, you might create a web app using Google Apps Script to respond to HTTP GET or POST requests that you might do from Python.
If you still insist is using a Python only code, you should "translate" JavaScript code into Python code and replace the calls to services like Slides (SlidesApp) into calls to Google Slides API. This implies that you will have to use Google OAuth 2.
Another option is that you enable the Google Apps Script API (this also requires Google OAuth 2) and call the Google Apps Script functions from Python.
Also you have the option to change your approach, i.e., instead of using Python run Google Apps Script functions using CLASP, but still can't be qualified as easy.

Related

Google ads enhanced conversion with ads api for node JS

I am trying to implement Google ads enhanced conversions. I have the option of doing it using the gtag, google tag manager or using the Ads api. However, On the Ads api I don't see any documentation related to Node Js. I am not able to figure out how I can make use of the Ads api to implement enhanced conversions with Node Js.
This is the official documentation for enhanced conversion using Ads api and i don't see anything related to Node Js
https://developers.google.com/google-ads/api/docs/conversions/enhance-conversions
Google provides no official Node SDK currently for Google Ads API.
https://github.com/Opteo/google-ads-node is an open source node sdk. It's a bit bloated for Lambda environments, but could be fine for most people.
You'll also have to fill out a form and submit to Google for approval to use the Google Ads API. Takes 48+ hours to get approved.
Another option is Google can ping an http or sftp endpoint of yours and just get a csv file you supply of all conversions for the day. This might be a simple approach.
Let's hope Google provides an official node sdk with simple way to upload ad conversions from server.

Using Google App Scripts/Sheets for a website CMS / REST API

Is it possible to use either Google Apps Script or the Google Sheets API to host a REST API, so that I can make client-side content requests on a static web page? If so, how would I go about this?
I'm building a simple website hosted on GitHub, and I want to experiment with using a spreadsheet as a content management system, e.g. fetching a running list of projects with corresponding text, images, etc.
Forgive me if I completely misunderstood the capabilities of either/both of these applications, or overlooked a previous ask!
You can use the Sheets API with multiple languages.
Here you have the different quickstarts that show you how to do it: https://developers.google.com/sheets/api/guides/concepts
Also you can create a Web App with Apps Script and embed it in your website: https://developers.google.com/apps-script/guides/web

How to take screenshot of Google Sheet

I would like to know is there any way, screenshot could be taken in Google Sheets using Google Apps Script. I browsed I couldn't see this question or answer anywhere.
Or can it be done in any other way if not using Google Apps Script.
You will not be able to take a screenshot with apps script. It's not possible to use the HTML features others mention because of security restrictions, either your script interface runs with iframe mode, or using caja, either way you can't access the parent window and caja will block those html5 methods.
Your best option is to use Google Apps Script to convert the sheet into PDF.
If you have trouble converting to PDF, see this other answer: Google Apps Script - Create PDf from Spreadsheet produces pdf of Google sign in page.
Use a javascript library such as this:
http://www.jquerybyexample.net/2013/08/take-webpage-screenshot-html5-jquery-javascript.html
It may be in violation of Google policies though, as it is blocked by them:
Here is a tutorial that explains how can you achieve this: https://blog.rasterwise.com/how-to-take-a-screenshot-on-google-sheets/
Essentially you can use a cloud screenshot API and instrument Google App Script to invoke the API as a function in Google Sheets.
This basically allows you to have a list of URLs that you can pass as parameters of the custom function as shown in the screenshot below:

Using google sheet as database in only google drive

I've been researching javascript, jquery, xml, google scripts, and the google spreadsheet api, with little luck. I'm trying to create a website that uses a google spreadsheet as a database. It needs to run on a chrome book.
Hosting sites on google drive doesn't seem to allow jquery. So I can only use html, css, and javascript, that I know of. I usually create asp.net sites with a C# backend, but I can't seem to figure out how to even get data from a published google spreadsheet to display on a google drive hosted website.
Do any of you have a path that you would suggest? I'm all for researching myself but I need a good starting point which I have yet to find.
Thanks
There is a GitHub library for PHP, if your site happens to use PHP
github.com php-google-spreadsheet-client
There are a few options:
Google Sites - With a Google Stand Alone HTML Apps Script in a Apps Script Gadget
Google Stand Alone HTML Apps Script
Website that Uses the Sheets API
If you try to access a Google sheet from a website with a different domain name, you will get a CORS error. CORS is a Cross Origin Resource Sharing. Each option for connecting to a spreadsheet has it's own issues. If you use a Stand Alone HTML App with Apps Script, you can't have a domain name. A free Google Site, doesn't have a domain name, but it's a nicer URL, and a Google Site can be mapped to a domain name. A website with a regular domain name, will require an API to do something with Sheets. The documentation for the Sheets API show examples written in Protocol, Java, and .Net. But, the documentation states:
A number of client libraries are provided in various languages. These client libraries make it easier to interact with the Sheets API.
But I don't see any reference to where all these various languages are.
I don't know of any easy to understand documentation for using a Google spreadsheet as a data source from a website. So, unfortunately, I don't know of an easy answer. The answer depends on what you want/need, and how much time and skill you have to set it up.
So, do you need a domain name or not? You can map a Google Site to a domain name:
https://support.google.com/sites/answer/99448?hl=en
But the documentation also states:
You can't map your domain to what is known as a naked domain, such as http://example.com
If you need to use a website and connect to the Google spreadsheet with an API, you'll need to run an authorization. Otherwise, any website could read/write to your spreadsheet.
Obviously there are websites that write data to Google spreadsheets, so it's possible.
You can also look at posts like this:
google-spreadsheet-api-with-php
how-do-i-access-the-google-spreadsheets-api-in-php

How to load javascript from external source and execute it in Google Apps Script

I am building some google apps scripts and want to load a javascript file located on one of my servers and be able to execute it's functions in Google Apps Script.
This way I can share a google apps script with people and update the javascript without effort needed from their side. (I would just update the version on my server which is then loaded in their Google Apps Script.
Is there a way to do this?
You can do this:
eval(UrlFetchApp.fetch("my url").getContentText())
Although it would be a lot faster/more efficient to cache the code in ScriptDb or CacheService and only fetch it fresh every 15 minutes or so.

Categories

Resources