Testing the installation of an unpublished Apps Script add-on - google-apps-script

I'm developing a container-bound Apps Script add-on. I need to demonstrate the installation process as part of the OAuth verification process. I can't publish my add-on without OAuth verification, and there doesn't seem to be any other way to demonstrate the installation.
Some options I've considered are:
Publishing as a private add-on. However this isn't an available option for me. It's not visible in my console, possibly because I've already set it as a public add-on and the link above indicates it's not possible to change visibility
Installing an unpublished addon-on. This also doesn't seem to work, possibly because my script is container-bound, or for some other reason. I can share the script with other accounts, but they're unable to install it; they have no visible installation button.
So I feel like I'm caught in an unfortunate loop whereby I can never get my app verified without it already being verified.

Actually it turns out I was able to do this without publishing it at all. Following #TheMaster's advice, I created a new standalone Apps Script project, and then copied all the code from my previous add-on.
Then, I ran Run → Test as Add-on in the Apps Script IDE, chose a spreadsheet to test it in, and clicked on the add-on menu. Note: you have to actually click an add-on menu item, the authorization screen won't appear before then.
This time, because the add-on is now standalone, this prompted me to authorize, which looked like this:
At this point if you start recording, it shows the required authorization prompts, including the client ID in the window URL bar. I submitted this video for Google's OAuth verification and they accepted it, so it looks like this is the easiest way.

There is no documentation explaining how to show the installation process of an add-on that has not been accepted. If you want to eventually publish the add-on publicly, then the only solution is to first publish the add-on publicly as "unlisted." Then you can remove the "unlisted" status later.
Getting one add-on approved as private, and then trying to publish it again as public won't work. You can't change a GCP project from a private to a public listing, and the GCP project has it's own ID. The approval is directly linked to the GCP project. You'd need a totally different GCP project for the public listing, and need to go through the approval process all over again. So, that doesn't make any sense to try.
The OAuth client ID must be shown in the installation video. That ID is shown in the address bar of the authorization dialog box. You need to widen out the dialog box so that the entire ID can be shown in the address bar. That way the people who are reviewing your add-on installation video can see that the OAuth ID is related. Otherwise, you could just create any video for any project, and submit it for review. They need to see the OAuth Client ID.
You can publish and add-on as unlisted, and it will appear in the GSuite Marketplace even though it's unapproved. An unapproved add-on will stop allowing installations at 100 installations. But, no one will see your unlisted add-on, and you aren't going to get a 100 installations before you get your installation video done. (As long as you don't share the unlisted link with anyone)
The other problem, is that the unapproved add-on will show a warning message and make you click the "advanced" link to get the approval dialog. You don't need to show that in your video. If the screen recording app that you're using can edit the video, then you can edit that out. Or you could edit it out later after the add-on is approved. Google probably saves your video as proof that a certain GCP project asks for certain permissions. The video that you post publicly could probably be edited. They aren't going to require another approval unless you change a scope.

Related

How to solve the error: Sorry, unable to open the file at this time. Please check the address and try again. (Gmail Add-on)

I have a Gmail Add-on deployed on marketplace, it was working fine but now when a user have multiple accounts logged into gmail and tries to install my add-on. It shows the error
Sorry, unable to open the file at this time.
Please check the address and try again.
The URL of opened popup is (script_id is my project's script id ): https://script.google.com/macros/u/1/s/<script_id>/authorize?scopes=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.addons.current.action.compose%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.addons.current.message.metadata%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fgmail.addons.execute%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fscript.external_request%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email%2Chttps%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile
When only one account is logged into Gmail, then it works as expected and add-on is installed normally.
I checked other solutions to the same problem, then say we need to remove /u/1/ from the URL. I copy pasted the URL into another tab and removed /u/1/ from the URL. I still got the same error. Also, this URL is generated by Google and not by us, so we cannot edit it.
Any help for the problem mentioned above will be appreciated.
Thanks in advance.
This is a well known issue regarding Apps Script and the way Google handles multiple accounts being logged in.
The documentation states the following regarding this matter:
If you're logged into multiple Google Accounts at the same time, you might have trouble accessing your Apps Script projects, add-ons, and web apps. Multi-login, or being logged into multiple Google Accounts at once, isn't supported for Apps Script, add-ons, or web apps.
Possible workarounds for this include:
Logging out of all your Google Accounts and only log in to the one that has the Apps Script project, add-on, or web app you need to access.
Opening an incognito window in Google Chrome, or an equivalent private browsing window, and log in to the Google Account that has the Apps Script project, add-on, or web app you need to access.
This is currently being tracked on this report here; I suggest you star it as any updates regarding this will be posted there.
Reference
Apps Script Script Projects.

How to fix "Sign in with Google temporarily disabled for this app" screen on an unpublished bound script?

I made a new google sheet with a simple script that does an external call with UrlFetchApp.
However, when I try to run or test the code, it says authorization required. App needs permission. I then click on review permissions, followed by clicking on my Gmail account.
Sign in with Google temporarily disabled for this app
This app has not been verified yet by Google in order to use Google Sign In.
Any advice on how to resolve this? Why is this showing up for my own unpublished unfinished code?
Reasons
Making external calls is a sensitive scope. If by any chance you tried to authorize from any (reauthorizations count as well) account 100 times (see user cap help page) throughout the development process, you will not be able to proceed.
That is usually the primary reason for this screen, but sometimes you get locked even if the project is new (for example, for some G Suite accounts). If that happens, in my experience the only way to fix it is by going through the review.
There is also a thread on the issue tracker if cannot resolve it with methods listed below.
Finally, take a look at related Q&As:
"Sign in with Google temporarily disabled for this app" error when trying to authorize a script
How can I bypass "Sign in with Google temporarily disabled for this app" in a Google Sheets script?
How to fix
Switch the Google Cloud Platform Project to a new standard one. This will reset the counter.
Create a new bound script from a new Google Sheets spreadsheet (this works the same as switching GCP, as a default cloud project is assigned to the script project).
Go through the OAuth verification process. Don't worry, it is not that long and only requires a video of how you use the scopes.

Unable to set project name in the "grant permissions" dialog for Google Apps Script Add-on

I have an add-on for Google Sheets that's currently being tested within my domain. For this post, let's call it My First Add On. When users install the add-on they're prompted for permissions, but it always appears as "Untitled project" in the dialog box:
The project name is set to My First Add On everywhere I can find:
The Google Apps script project name
The Google Cloud Platform project name (IAM > Settings)
The Google Chrome Web Store add-on name (Developer Dashboard)
My add-on is published with 'private' visibility, available only to people in a given Google Group (my trusted testers).
I've searched through documentation and forums to see what I'm missing here, but can't find anything that covers this scenario.
This has to be something basic, but I'm completely stuck and the only support option available to me is to post here. I'd be grateful for any help, folks!
I've seen something similar, where the name of the script isn't updated if you test it before saving the name (ie, create a name when prompted rather than before testing). Try clearing your cache, closing out of the tab, etc, and then launching again. I'm not sure it's something you can fix in code or listings anywhere.

Publish an add-on privately

I am trying to publish a test add-on with the option Private, because there is nothing new in this add-on, and would not be accepted by Google if I published it with Public.
The add-on contains a sidebar, a custom menu and a custom function. It works well on its Google Sheet.
In Chrome Web Store, I have added 2 gmails to Edit your tester accounts: under Your developer account. I also created a google group with these 2 gmails.
By following this thread, I did Publish ==> Deploy as Sheets web add-on..., then uploaded different icon and images in Chrome Web Store, paid 5 dollars, left most of boxes blank, then published it with the option Private and chose the created google group.
However, when I open a new Google Sheet with either of these two mails, I cannot find the add-on in Add-ons. By Add-ons ==> Get add-ons..., I cannot find the add-on either.
So does anyone know where this add-on is supposed to appear? Is it because this add-on is under review by Google that it is not available yet.
I am quite surprised to see such a basic publishing is not unclear. Is it because few people publish an add-on with Private?
In your web store dashboard, you should see the link to the add-on. Get the URL for this link and give the URL to the accounts you have created that should have permission. Those accounts need to install the add-on, and then should be able to use it.
I think you can also list your add-on as unlisted and not be required to go through the entire approval process. This makes it a little easier to share your add-ons with specific users.

Deploying my custom Google Sheet

I have been searching for an answer, more that likely using the wrong terminology, to my question and I have read through the Google documentation but I am now more confused than when I started looking for the answer.
I'm new to Google Apps and a complete beginner at Javascript. I recently started working in a Google Apps school (we have our own domain) and I have started developing some custom Google Sheets to aid other teachers and boost productivity.
I have developed a Sheet with some custom scripts and a custom menu bar to call the various functions of the script. Since I am so new to Javascript my scripts have some bugs that I fix as other users report them to me. However, my problem is that when I fix a bug in my "master" Sheet the end user must open the shared master Sheet and make a copy of it to benefit from the update. I want to update to be pushed out to all copies of the sheet (circa 4 copies)
I know need to deploy it but I don't know whether I need to deploy it as a web app or a sheets add-on from the script editor? Again, we have our own domain so I do believe I don't need to have it approved by Google to use it internally in our domain?
Based from this documentation, public add-ons require a review before publication, since you have your own domain, you can publish just for users within your domain without a review.
To publish an add-on for the first time, follow these steps. If you also want to let Google Apps domain administrators install and authorize your add-on for all users in their domain, follow the steps for domain-wide publication as well.
When you fixed your bugs and wanted it to be updated to all copies of sheets, you can follow this Update your add-on link to update an add-on that you have already published.
Open the add-on project in the script editor.
Make the necessary changes to your code, then save a new version of your project by clicking File > Manage versions, then Save
New Version. Close the Manage Versions dialog.
Click Publish > Deploy as add-on. (Or Sheets or Docs or Forms add-on.)
In the dialog that appears, change the add-on's details as needed, select the new version of your script, then click Update store
item. (If you change the add-on's name, make sure you also change
the name of the Apps Script project to match, as the project name is
shown in the authorization dialog.)
In the store listing, click Publish changes, then click OK in the dialog that appears.
Hope this helps!