How to publish a Google Apps Script web app to the G-Suite Marketplace? - google-apps-script

First, I know there is a similar question but it is very old and that answer is not valid anymore.
I am working on a Google Apps Script web-app (either bounded to a Sheet, or a stand alone one that'll reference a Sheet). I am wondering if it is possible to publish it to the G-Suite Marketplace? All of the documentation I am finding talks about publishing add-ons and what not.
I saw this, and many articles/post link to it saying that is how, but it says publishing to the Chrome store is deprecated.
But I can't find anything on publishing a GAS web-app to the marketplace. Is it possible?

Answer: No
I know this hasn't been explicitly written anywhere but I'm taking my cues from the following docs -
Choosing where to publish - here they describe what can and cannot be published on G Suite Marketplace (albeit, Web Apps show-up nowhere)
G Suite Marketplace SDK > Configuring the Marketplace SDK > Extensions - here too, they haven't listed Web Apps as a form of accessibility
Hope this helps! Plus, I've built a fair amount of web apps myself and have always wanted to get it listed somewhere but haven't been able to do so - yet :)

Related

Unable to publish Google editor add-on to the G Suite Marketplace

Currently, I'm working on a project that will be sharing a written in Apps-Script framework Google Slides extensions. One of the first tasks I've had to do was how to publish an example add-on to a whole private domain? To accomplish this I've used the instruction from official Google documentation:
Publishing an editor add-on
I've gone through these steps without any bigger problems, but it looks like not everything has gone as expected. My extension now is visible in a Chrome Web Store, but unfortunately not in G Suite Marketplace. In result, I cannot see it in a list of add-ons in Google Slides editor that are available for my private domain.
I've published script to Chrome Web Store and also enabled and configured G Suite Marketplace SDK in my project. And even the state of publishing looks fine:
My manifest.json file
It even looks like my extension is installed for a whole domain(I've clicked 'Integrate with Google' button)
But still I cannot see my add-on in Google Slides as well as in G Suite Marketplace:
Did somebody ever faced a similar situation? Did I skipped something important or am I doing something in a wrong way?
#AlanWells I've did what you said and saved configuration, but still I can't see my addon in domain-wide addons in Google Slides editor as well as in G Suite Marketplace.
Required scopes
Scopes in project settings
Scopes in Marketplace configuration
Can I do anything else in this situation ?

Google Script App deploy only for one person

I got a little bit stuck right now at deploying my Google Script App.
I've developed a Google Script App, which is embedded directly into
Google Drive (Spreadsheet). It's not a Web App, it's a user interface
in Google Spreadsheet (sorry, but i have to be clear).
That Script is just for one person in another company.
How can i deploy my script to her?
I've read about Domain-Wide-Installation and publishing an App to the marketplace, but i want to deploy it just for her and no one else.
How can i achieve that?
Thanks
Best regards
A big thanks to Sandy Good.
"You can publish an Add-on as "unlisted", which means that it can not be seen in the Chrome Store, and does not need to go through the approval process. When an add-on is installed, it has the authority to check the users email address. So, you could set it up so that it could only be installed by this person. An Add-on will keep the code from being accessible to anyone. Although you might want to also use private functions. I don't know if there is a better way for the Domain Administrator in a paid account to do what you want. I don't know anything about that." - Sandy Good.
That was exactly what i was looking for. Thanks
An add-on can also published for testers. Those testers must be part of a google group. Maintaining a group is easier.

Publish Apps Scripts Web App on the Google Apps Market Place

I have a Google Apps Scripts web app and I would like to publish it on the Google Apps Market Place. I followed this instruction (https://developers.google.com/apps-script/guides/domain-wide-web-app) to properly setup the Apps Market Place SDK but I have some troubles.
To test installation flow I use the button in the setup page of the API, so :
My issue is if a user install the app as I allow personal install
The user validate rights and after he is redirected to the application. There I have an issue because the apps script web app request a "Offline access" in a new pop up.
=> I don't know how to add this scope because I don't find any scope for this need to add in the market place SDK setup.
What I found on stackoverflow is I probably have this message because on scope request by apps script web app there is the approval_prompt parameter set to force.
My question is how to avoid that and allow user to connect to app after validating scope on the apps market place ?
Thank you,
Stéphane
You can follow the List of Best Practices
Before you publish your Google App Marketplace application, please review the following list of best practices. Adhering to these best practices will help your application make it through the Google Apps Marketplace review process smoothly without you needing to make additional changes.
This document explain:
3: Define your scopes properly
All OAuth2.0 scopes must be defined in the Google Developer's Console, in the Scopes section of the Google Apps Marketplace SDK. This is essential in order to achieve one-click or zero-click SSO, as described in the following section.
According to this previous question, in the Admin Conso

Can Google-Apps-Script based apps be comercially deployed in the Apps Market?

I want to develop a comercial App that works in connection with gmail, Google calendar and other Google products. For what I see, Google Apps Script would give me the required functionality but I cant seem to find the answer to a couple of deployment issues. In the Google Apps Marketplace article on Wikipedia I read this:
Google Apps Marketplace is a product of Google Inc. It is an online store designed to help people and organizations to discover, purchase, and deploy integrated cloud web applications that work with Google Apps (Gmail, Google Docs, Google Sites, Google Calendar, Google Contacts, etc.) and with third party software. Some apps are free, some are paid for. Apps are based on Google APIs or on Google Apps Script.
But then, looking into the Google Apps documentation, the only distribution mechanisms I find are the "Script Gallery" which implies access to the source code by the end user and no comercial transaction or Chrome Web Store which is bound to Chrome Browser, while what I intend to do is aimed at Google Sites or Google Apps users and perfectly Browser Agnostic. My questions are:
Can I bundle a Google Apps Script based App for sell in the Google Apps Marketplace ?
Can I deploy it without the end users having access to the source code?
The short answer is no. Google Apps Script imposes daily quotas on all of their GAS APIs. These quotas cannot be extended in any way, so it is not feasible to deploy this on a commercial scale. You should take a look at Google Apps Engine which gives much more flexibility for what you want to do.
There is a workaround that I did in the past. I had an installation script (that ran as me) that collected user properties and the actual app script that ran as the individual user and referenced the user properties collected. At the time I didn't set user script properties but you could do that to bypass the first install script I would think. When the user installed they would get an email with the user script link and then they would authorize it separately. Install link was distributed through Google Checkout (deprecated now) but you could do electronic distribution through another venue. Not a traditional app distribution process by any means but maybe it will spark an idea for your specific case.
#Javier - we too arrived at the same conclusion. Google Apps Marketplace (GAM) deployment is just one of the channels to reach businesses but its the un-extendable Google Apps quotas that cripples a commercial deployment of a Google Apps Scripts (GAS) based WebApp.
We tried listing our webapp based on GAS directly into GAM but it failed their SSO requirements as there was no way to use domain-wide delegation to authorize the GAS permissions for the end users if the webapp ran as "user accessing the web app".
While we migrate to a fully stand-alone application, we have managed to deploy a restricted version of the app to GAM indirectly using a GAE instance as a proxy.
Here is how its deployed.
The GAM listing links to a GAE proxy app.
GAE proxy does GAM compliant SSO and redirects all subsequent access to our publicly accessible webapp in "run as me" mode.
GAE proxy passes on any domain data authorized by the GAM client to the webapp.
Implement security mechanism to block unauthorized access to the public webapp and accept calls ONLY from the GAE proxy.
Our current customers (very small businesses/startups) are fine with this security model, but I am afraid this will not scale for larger commercial deployment.
#mrschwen: we too are considering your exactly approach in mind to mitigate quota issues in case our app gets wider adoption until we are forced to move out of the GAS space, even though the end users will be forced to authorize our scripts which will run as 'user accessing the web app'

How to Deploy Google Apps Script for Domain?

I have a script that I would like to make available to all the users of our Google Apps domain, but I don't want to publish it to the Chrome store. We would like to avoid deploying it from a single user account. How is this normally done?
It really depends on your use case, but there are a number of ways this might be achieved from publishing a code library (and limiting the sharing of the link), hosting it in a Google Site to publishing it as a url triggered webservice.
It depends on whether you want to share the functionality to others or literally the code.