Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Google App Script - allowing access for anonymous users

I have read the following threads:

  • Scripts not working for anonymous users, Google spreadsheet
  • Google Spreadsheet GAS Trigger not firing for anonymous editors

I have a very simple bound script that will add a menu item under the Add-ons menu. From what I've gathered, this is possible regardless of the users authMode and your way of publishing your script.

function onOpen(e) {
  var menu = SpreadsheetApp.getUi().createAddonMenu();
  menu.addItem('Alert', 'alert');
  menu.addToUi();
}

function alert() {
  SpreadsheetApp.getUi().alert('alerted');
}

This works for all logged in users, but not for anonymous users. When opening the sheet as an anonymous user, the menu option isn't even there. As suggested in the second post above, I have also created a installable trigger for my onOpen function, but it still doesn't work. A installable trigger should run as the user who created the script, and I have authorized it.

I also have shared the link as "Everyone with the link can edit". Have I misinterpreted something? It feels like this shouldn't be a big hassle.

Any help would be greatly appreciated. If you need any more information to help, please tell me and I will provide it.

like image 564
jokarl Avatar asked Nov 27 '14 15:11

jokarl


People also ask

How do I give an app access to a script?

Note: Applications can use the Apps Script API to execute Apps Script functions. These API requests do not require granting access to your script projects. You can grant the Apps Script API access to your script projects using the Apps Script dashboard. You can also use the dashboard to revoke this access at any time.

Are Google scripts secure?

Most likely it is safe since the script is only accessible to the script owner and Workspace Admins if it is for Google workspace (which may or may not be an issue).


2 Answers

Scripts cannot be accessed or run at all by anonymous users, unless they are deployed as a Web App, and even then only the front end is accessible by an anonymous user.

You'll see in your bound script that users who are not logged in cannot even access the script editor by clicking tools -> Script Editor (But all logged in users can). Additionally, if you have a standalone script in your Drive, and you right click and share to 'Anyone on the web can edit', anonymous users are still required to login.

like image 137
HDCerberus Avatar answered Sep 18 '22 20:09

HDCerberus


I see the same behaviour. Interestingly, I cannot even open the Script Editor as an anonymous user to confirm the script is there, although that menu option is not grayed out.

It all works fine once I log into an unrelated account.

This may be a bug, or it could be an undocumented restriction, or it could be a temporary issue that will get resolved.

I think you've set up everything correctly.

like image 35
Cameron Roberts Avatar answered Sep 19 '22 20:09

Cameron Roberts