Google Apps Script function is not getting executed after authorization - google-apps-script

I'm working on one existing apps script(sheets) app, when user clicks on Save button for the first time it is asking for the authorization which is the expected functionality. But the problem is after authorization the save function is not getting invoked, I need to click it again. So some users are getting confused with this behavior since they are thinking that the data got saved after authorization.
My questions are
Is this the default behavior?
If it is default, how to overcome this case?
Is there any way to execute the function automatically after authorization?
I couldn't paste the code here due to some confidential issues, looking for any links or solutions.
Thanks in advance.

The behavior you report actually seems to be a bug.
It has already been reported on Google's Public Issue Tracker and seems to being worked on.
Unfortunately I cannot think of another workaround than informing your users about the current situation.
I can only recommend you "star" the issue to increase the visibility for its importance and get updates about its fixing status.

For years this worked correctly for me, scripts were executed after authorization. Only since today it does not work anymore with any of my scripts. Apparently this has been fixed at some point and now we have it again ...

Related

Unable to authorize Google App Scripts in order to create a new contact

I've been working for Google Apps Script for a while. I have many programs where I've authorized Gmail, Docs, Drive, Calendar, UI, etc... I'm just now adding Contacts...but it is not working
My first step is to Contacts.createContact(), but this is failing no matter what I've done. Documentation says that the "https://www.google.com/m8/feeds" scope is needed. I have that. I also added "https://www.googleapis.com/auth/contacts"
I've turned on API in the Admin for the Workspace. I've made the app the trusted. I've removed authorization for everything and readded. The odd thing is that in giving authorization when it lists everything asking for permissions, under contacts is says "Contacts: See, edit, delete..." It specifically does not say "Create".
I've followed all of the documentation I can find for Google and turned on everything and given permissions to everything. Still, I cannot createContact.
This worked for me:
function createADoggieContact() {
ContactsApp.createContact("Cooper","Dachshund","Cooper#cooper.com");
}
createContact
I didn't post code, because it was not a code problem. After hours and hours of trial and error, I found the problem. This is not documented anywhere that I could find in Google. Google support couldn't figure it out as well. I've left feedback that they will hopefully take.
I hope this helps someone else who is running into this problem. It was caused by the fact that the very first method I was trying executing in order to bring up the authorization was the ContactsApp.createContact(). Calling this first and in order to bring authorization appears to not be allowed or something they will permit as the very first operation. Don't know if this is security related.
I changed my code instead to use ContactsApp.getContact() to a known and existing contact. That code worked!!! Authorization popped up. Granted. Got the info. I then changed the code back to the .createContact()....it all worked fine.
This appears to only be when you are first trying to use the ContactApp and authorize it for the very first time in your code. Perhaps it was just a glitch in my account, but the same glitch could happen for someone else.

How to run a script in Google Sheets? [duplicate]

I am trying to run
this simple Google Script.
However, it does not allow me to authorise. How can I proceed?
Update 1:
As reported by
Rubén, Google says it won't fix this - #163
Some workarounds are provided in #76, #145 and #150 - showing solutions like changing GCP and providing a oauth consent screen.
Update:
Switching Google cloud project from default to a standard project have resolved the issue for some users. This is still a workaround and may not work for all. Therefore, star the issue below.
This seems to be a new issue affecting certain users. You can ★(on top left) star the issue here to let Google developers know that you're affected by this issue and to prioritize the issue.
It stopped complaining once I specified the script only needed access to the current sheet. Google explains how to do it here.
All you need to add to your code is this JsDoc annotation:
/**
* #OnlyCurrentDoc
*/
That's something that happens. To solve the issue just copy the contents of your Script, delete it, and create a brand new one with the same contents, or give it another name in case you are superstitious. If that doesn't work, create another Spreadsheet with the same contents and proceed. Sometimes it's just a temporary issue. Perhaps the problem persists due to the stored browsing data, so it would be convenient to clear it. (I challenge you to take this last move!)
After going through the process twice with a client, I can confirm that the most reliable way to fix the error currently is to go through the verification process. An important note is that after approving the scopes, some accounts need to approve every other sensitive scope that is added to the script and cloud project as well or the issue will resurface.
So the step-by-step guide is as follows:
Switch from default to standard Google Cloud Project
Fill in the OAuth Credentials screen and add all sensitive scopes
Click on "Submit for verification" and prepare a YouTube video showing both authorization process and usage of each of the sensitive
scope
Wait until the verification team sends you an email (usually 1-2 days, but no guarantee here) and reply with the link to the video, then wait for the verification process to complete
If you received a "Granted" response, continue to steps 6 & 7, if not - follow the instructions provided
Remove all previously granted permissions to the project
Reauthorize the script by running it again, everything should be working
Having the same issue no solution of listed in this thread were working for me. After faied authentification i always get the screen as the topic starter gets it, without the "advanced" option.
However i've managed to get at least a limited access and run my script on the following way:
I share the affected sheet to anybody with link, with editor access level.
Then, from incognito window (maybe it isn't necessary, but i did it so), I've logged in into my other Google account,
opened the link, which was shared,
was forced to authorize myself,
failed on authorization - but the screen with failed authorization contains the "advanced" option,
clicking on it i've got a limited access and was able to run the script.

Issue with Google sign in and scopes while developing spreadsheets

I am developing a spreadsheet script for a game I play.
Its been 3 weeks I'm working on it and everything was running smoothly and ran all my tests and verification successfully. Then yesterday when I wake up
I started to get this message when trying to run the functions I've created:
When I read trough the docs here: https://support.google.com/cloud/answer/7454865?hl=en
It says I don't need verification while building an app.
If someone as an idea and/or a link i can refer to about this kind of issues when building scripts(not use other people ones) or explain me whats causing my issue it would be greatly appreciated.
[ edit:
I've found where/what was the issue but I really dont understand it.
Here's the code that activated "https://www.googleapis.com/auth/script.container.ui" Oauth scope:
function loadAxieIventory() {
//show head off
showHead = false;
//axie template
axieTemp_ = axieTemp3_; //(change the value of the function in the actual function)
//get axie inventory with
//parts inventory
};
I really don't understand whats different with this function from my other function so that it activate an other scope.
Also the function is not finish yet and pretty much does nothing at this stage.
]
Regards Guillaume.
This appears to be a bug!
There is already a report on Google's Issue Tracker which detail the same kind of behaviour:
Google Apps Script unauthorizable
Google does seem to know about this issue but if it's causing problems you can file your own bug about it here.
You can also hit the ☆ next to the issue number in the top left on the aforementioned pages which lets Google know more people are encountering this and so it is more likely to be seen to faster.

Cause of "The Oauth identity of this script has been deleted" error message

I've got a problem on some script I'm working on and I've got a error message like :
Which means :
The OAuth identity of this script has been deleted or disabled. This
may be due to a Terms of Service violation.
I've see this SO question that gave me a solution to resolve the problem.
My question is: how to avoid this kind of problem ?
Does my script got a problem ? Does my script was automatically strike for some reason ?
Looking at my research, all the people who've got the problem find a solution, but never find the cause of the problem.
Does anyone have some experience with this error message ?
Thank you.
Edit: The problem occur when user already review the permissions, not on permissions review. Thanks Zig to point that.
#Frank M. was right on his answer at OAuth Error - script deleted or disabled
This seems to fix the problem, but in fact it does not.
The problem is related to the cloud project bound to the script, The
reason turned out to be that the TOS for Cloud projects changed and
that the user has to acknowledge this. If that does not happen then
after some time the whole shebang is disabled and you get the error
message.
(This is why a copy seems to work: it works until some Google bot
notices that it is bound to a project without TOS acknowledgement and
then it disables it.)
The solution: - open the script - click Resources > Cloud Platform
project - click on the bound project.
This will open up the Cloud console and also show the popup for you to
acknowledge the new TOS. If you agree to this, you're set and your
script works again.
Note: it seems that you need to do this only once for the Cloud
environment. So if you have several scripts then you need to do this
for one script only. Or access the Cloud environment directly and
acknowledge the new TOS.
Note: even if you though your script is not bound to a Cloud project,
trust me... it is. If you do not bind it yourself, then it is bound to
a default project specific to that script.
Hope this helps.
Even if the script doesn't work immediatly after accepting the new TOS, he work about 30 minutes after, as he suppose to work.

Google Apps Script editor not launching

From this morning I have no possibility to edit scripts. My existing script link to a spreadsheet continue to work but when I try to edit them or to edit a new one , I only get a shaded upper bar, and no possibility to use it.
Last times one of my scripts was getting some errors, is it possible that google "ban" me from using script due to too much memory using?
Thanks in advance,
david
I used Chrome Incognito mode as a temporary fix.
Hopefully, this works for you as well.
Switch you drive locale settings to English and it will work. This is a temporary workaround to use until they fix the bug. see issue 4339
Turned out I was still signed into another account despite the UI suggesting otherwise. Restarting the browser and checking who you are logged in as in Drive (and potentially signing the incorrect user out) fixed the problem for me.
Exactly. I was signed with different account without permits. Request access to the Sheet with full access without restrictions and it will work :)